2023-12-08 10:44 Feng Wang <[email protected]> wrote:
Have run all the vector api-testing.
>Patch v2: Using variadic macro and add the dependency into t-riscv
>
>In order to add other extension about vector,this patch add
>unsigned int (*avail) (void) into function_group_info to determine
>whether to register the intrinsic based on ISA info.
>
>gcc/ChangeLog:
>
> * config/riscv/riscv-vector-builtins-functions.def (DEF_RVV_FUNCTION):
> Add AVAIL argument.
> (read_vl): Using AVAIL argument default value.
> (vlenb): Ditto.
> (vsetvl): Ditto.
> (vsetvlmax): Ditto.
> (vle): Ditto.
> (vse): Ditto.
> (vlm): Ditto.
> (vsm): Ditto.
> (vlse): Ditto.
> (vsse): Ditto.
> (vluxei8): Ditto.
> (vluxei16): Ditto.
> (vluxei32): Ditto.
> (vluxei64): Ditto.
> (vloxei8): Ditto.
> (vloxei16): Ditto.
> (vloxei32): Ditto.
> (vloxei64): Ditto.
> (vsuxei8): Ditto.
> (vsuxei16): Ditto.
> (vsuxei32): Ditto.
> (vsuxei64): Ditto.
> (vsoxei8): Ditto.
> (vsoxei16): Ditto.
> (vsoxei32): Ditto.
> (vsoxei64): Ditto.
> (vleff): Ditto.
> (vadd): Ditto.
> (vsub): Ditto.
> (vrsub): Ditto.
> (vneg): Ditto.
> (vwaddu): Ditto.
> (vwsubu): Ditto.
> (vwadd): Ditto.
> (vwsub): Ditto.
> (vwcvt_x): Ditto.
> (vwcvtu_x): Ditto.
> (vzext): Ditto.
> (vsext): Ditto.
> (vadc): Ditto.
> (vmadc): Ditto.
> (vsbc): Ditto.
> (vmsbc): Ditto.
> (vand): Ditto.
> (vor): Ditto.
> (vxor): Ditto.
> (vnot): Ditto.
> (vsll): Ditto.
> (vsra): Ditto.
> (vsrl): Ditto.
> (vnsrl): Ditto.
> (vnsra): Ditto.
> (vncvt_x): Ditto.
> (vmseq): Ditto.
> (vmsne): Ditto.
> (vmsltu): Ditto.
> (vmslt): Ditto.
> (vmsleu): Ditto.
> (vmsle): Ditto.
> (vmsgtu): Ditto.
> (vmsgt): Ditto.
> (vmsgeu): Ditto.
> (vmsge): Ditto.
> (vminu): Ditto.
> (vmin): Ditto.
> (vmaxu): Ditto.
> (vmax): Ditto.
> (vmul): Ditto.
> (vmulh): Ditto.
> (vmulhu): Ditto.
> (vmulhsu): Ditto.
> (vdivu): Ditto.
> (vdiv): Ditto.
> (vremu): Ditto.
> (vrem): Ditto.
> (vwmul): Ditto.
> (vwmulu): Ditto.
> (vwmulsu): Ditto.
> (vmacc): Ditto.
> (vnmsac): Ditto.
> (vmadd): Ditto.
> (vnmsub): Ditto.
> (vwmaccu): Ditto.
> (vwmacc): Ditto.
> (vwmaccsu): Ditto.
> (vwmaccus): Ditto.
> (vmerge): Ditto.
> (vmv_v): Ditto.
> (vsaddu): Ditto.
> (vsadd): Ditto.
> (vssubu): Ditto.
> (vssub): Ditto.
> (vaaddu): Ditto.
> (vaadd): Ditto.
> (vasubu): Ditto.
> (vasub): Ditto.
> (vsmul): Ditto.
> (vssrl): Ditto.
> (vssra): Ditto.
> (vnclipu): Ditto.
> (vnclip): Ditto.
> (vfadd): Ditto.
> (vfsub): Ditto.
> (vfrsub): Ditto.
> (vfadd_frm): Ditto.
> (vfsub_frm): Ditto.
> (vfrsub_frm): Ditto.
> (vfwadd): Ditto.
> (vfwsub): Ditto.
> (vfwadd_frm): Ditto.
> (vfwsub_frm): Ditto.
> (vfmul): Ditto.
> (vfdiv): Ditto.
> (vfrdiv): Ditto.
> (vfmul_frm): Ditto.
> (vfdiv_frm): Ditto.
> (vfrdiv_frm): Ditto.
> (vfwmul): Ditto.
> (vfwmul_frm): Ditto.
> (vfmacc): Ditto.
> (vfnmsac): Ditto.
> (vfmadd): Ditto.
> (vfnmsub): Ditto.
> (vfnmacc): Ditto.
> (vfmsac): Ditto.
> (vfnmadd): Ditto.
> (vfmsub): Ditto.
> (vfmacc_frm): Ditto.
> (vfnmacc_frm): Ditto.
> (vfmsac_frm): Ditto.
> (vfnmsac_frm): Ditto.
> (vfmadd_frm): Ditto.
> (vfnmadd_frm): Ditto.
> (vfmsub_frm): Ditto.
> (vfnmsub_frm): Ditto.
> (vfwmacc): Ditto.
> (vfwnmacc): Ditto.
> (vfwmsac): Ditto.
> (vfwnmsac): Ditto.
> (vfwmacc_frm): Ditto.
> (vfwnmacc_frm): Ditto.
> (vfwmsac_frm): Ditto.
> (vfwnmsac_frm): Ditto.
> (vfsqrt): Ditto.
> (vfsqrt_frm): Ditto.
> (vfrsqrt7): Ditto.
> (vfrec7): Ditto.
> (vfrec7_frm): Ditto.
> (vfmin): Ditto.
> (vfmax): Ditto.
> (vfsgnj): Ditto.
> (vfsgnjn): Ditto.
> (vfsgnjx): Ditto.
> (vfneg): Ditto.
> (vfabs): Ditto.
> (vmfeq): Ditto.
> (vmfne): Ditto.
> (vmflt): Ditto.
> (vmfle): Ditto.
> (vmfgt): Ditto.
> (vmfge): Ditto.
> (vfclass): Ditto.
> (vfmerge): Ditto.
> (vfmv_v): Ditto.
> (vfcvt_x): Ditto.
> (vfcvt_xu): Ditto.
> (vfcvt_rtz_x): Ditto.
> (vfcvt_rtz_xu): Ditto.
> (vfcvt_f): Ditto.
> (vfcvt_x_frm): Ditto.
> (vfcvt_xu_frm): Ditto.
> (vfcvt_f_frm): Ditto.
> (vfwcvt_x): Ditto.
> (vfwcvt_xu): Ditto.
> (vfwcvt_rtz_x): Ditto.
> (vfwcvt_rtz_xu) Ditto.:
> (vfwcvt_f): Ditto.
> (vfwcvt_x_frm): Ditto.
> (vfwcvt_xu_frm) Ditto.:
> (vfncvt_x): Ditto.
> (vfncvt_xu): Ditto.
> (vfncvt_rtz_x): Ditto.
> (vfncvt_rtz_xu): Ditto.
> (vfncvt_f): Ditto.
> (vfncvt_rod_f): Ditto.
> (vfncvt_x_frm): Ditto.
> (vfncvt_xu_frm): Ditto.
> (vfncvt_f_frm): Ditto.
> (vredsum): Ditto.
> (vredmaxu): Ditto.
> (vredmax): Ditto.
> (vredminu): Ditto.
> (vredmin): Ditto.
> (vredand): Ditto.
> (vredor): Ditto.
> (vredxor): Ditto.
> (vwredsum): Ditto.
> (vwredsumu): Ditto.
> (vfredusum): Ditto.
> (vfredosum): Ditto.
> (vfredmax): Ditto.
> (vfredmin): Ditto.
> (vfredusum_frm): Ditto.
> (vfredosum_frm): Ditto.
> (vfwredosum): Ditto.
> (vfwredusum): Ditto.
> (vfwredosum_frm): Ditto.
> (vfwredusum_frm): Ditto.
> (vmand): Ditto.
> (vmnand): Ditto.
> (vmandn): Ditto.
> (vmxor): Ditto.
> (vmor): Ditto.
> (vmnor): Ditto.
> (vmorn): Ditto.
> (vmxnor): Ditto.
> (vmmv): Ditto.
> (vmclr): Ditto.
> (vmset): Ditto.
> (vmnot): Ditto.
> (vcpop): Ditto.
> (vfirst): Ditto.
> (vmsbf): Ditto.
> (vmsif): Ditto.
> (vmsof): Ditto.
> (viota): Ditto.
> (vid): Ditto.
> (vmv_x): Ditto.
> (vmv_s): Ditto.
> (vfmv_f): Ditto.
> (vfmv_s): Ditto.
> (vslideup): Ditto.
> (vslidedown): Ditto.
> (vslide1up): Ditto.
> (vslide1down): Ditto.
> (vfslide1up): Ditto.
> (vfslide1down): Ditto.
> (vrgather): Ditto.
> (vrgatherei16): Ditto.
> (vcompress): Ditto.
> (vundefined): Ditto.
> (vreinterpret): Ditto.
> (vlmul_ext): Ditto.
> (vlmul_trunc): Ditto.
> (vset): Ditto.
> (vget): Ditto.
> (vcreate): Ditto.
> (vlseg): Ditto.
> (vsseg): Ditto.
> (vlsseg): Ditto.
> (vssseg): Ditto.
> (vluxseg): Ditto.
> (vloxseg): Ditto.
> (vsuxseg): Ditto.
> (vsoxseg): Ditto.
> (vlsegff): Ditto.
> * config/riscv/riscv-vector-builtins.cc (DEF_RVV_FUNCTION): Using
> variadic macro.
> * config/riscv/riscv-vector-builtins.h (struct function_group_info):
> Add avail function interface into
> struct.
> * config/riscv/t-riscv: Add dependency
> * config/riscv/riscv-vector-builtins-avail.h: New file.The definition
> of AVAIL marco.
>---
> .../riscv/riscv-vector-builtins-avail.h | 17 +
> .../riscv/riscv-vector-builtins-functions.def | 953 +++++++++---------
> gcc/config/riscv/riscv-vector-builtins.cc | 6 +-
> gcc/config/riscv/riscv-vector-builtins.h | 10 +
> gcc/config/riscv/t-riscv | 1 +
> gcc/testsuite/g++.target/riscv/rvv/rvv.exp | 9 +-
> gcc/testsuite/gcc.target/riscv/rvv/rvv.exp | 8 +
> 7 files changed, 526 insertions(+), 478 deletions(-)
> create mode 100644 gcc/config/riscv/riscv-vector-builtins-avail.h
>
>diff --git a/gcc/config/riscv/riscv-vector-builtins-avail.h
>b/gcc/config/riscv/riscv-vector-builtins-avail.h
>new file mode 100644
>index 00000000000..22f72e0baca
>--- /dev/null
>+++ b/gcc/config/riscv/riscv-vector-builtins-avail.h
>@@ -0,0 +1,17 @@
>+#ifndef GCC_RISCV_VECTOR_BUILTINS_AVAIL_H
>+#define GCC_RISCV_VECTOR_BUILTINS_AVAIL_H
>+
>+#include "insn-codes.h"
>+namespace riscv_vector {
>+
>+/* Declare an availability predicate for built-in functions. */
>+#define AVAIL(NAME, COND) \
>+ static unsigned int \
>+ riscv_vector_avail_##NAME (void) \
>+ { \
>+ return (COND); \
>+ }
>+
>+
>+}
>+#endif
>diff --git a/gcc/config/riscv/riscv-vector-builtins-functions.def
>b/gcc/config/riscv/riscv-vector-builtins-functions.def
>index 1c37fd5fffe..0d6ed6d739c 100644
>--- a/gcc/config/riscv/riscv-vector-builtins-functions.def
>+++ b/gcc/config/riscv/riscv-vector-builtins-functions.def
>@@ -1,6 +1,6 @@
> /* Intrinsic define macros for RISC-V 'V' Extension for GNU compiler.
>- Copyright (C) 2022-2023 Free Software Foundation, Inc.
>- Contributed by Juzhe Zhong ([email protected]), RiVAI Technologies Ltd.
>+ Copyright (C, ) 2022-2023 Free Software Foundation, Inc.
>+ Contributed by Juzhe Zhong ([email protected], ), RiVAI Technologies
>Ltd.
>
> This file is part of GCC.
>
>@@ -31,624 +31,627 @@ along with GCC; see the file COPYING3. If not see
> - OPS_INFO describes all information of return type and each
> argument type.
>
>+ - AVAIL this argument is the optional for AVAIL.Determin the enable
>+ of the intrinsic function.
>+
> */
> #ifndef DEF_RVV_FUNCTION
>-#define DEF_RVV_FUNCTION(NAME, SHAPE, PREDS, OPS_INFO)
>+#define DEF_RVV_FUNCTION(NAME, SHAPE, PREDS, OPS_INFO, AVAIL)
> #endif
>
> /* Internal helper functions for gimple fold use. */
>-DEF_RVV_FUNCTION (read_vl, read_vl, none_preds, p_none_void_ops)
>-DEF_RVV_FUNCTION (vlenb, vlenb, none_preds, ul_none_void_ops)
>+DEF_RVV_FUNCTION (read_vl, read_vl, none_preds, p_none_void_ops, )
>+DEF_RVV_FUNCTION (vlenb, vlenb, none_preds, ul_none_void_ops, )
>
> /* 6. Configuration-Setting Instructions. */
>
>-DEF_RVV_FUNCTION (vsetvl, vsetvl, none_preds, i_none_size_size_ops)
>-DEF_RVV_FUNCTION (vsetvlmax, vsetvlmax, none_preds, i_none_size_void_ops)
>+DEF_RVV_FUNCTION (vsetvl, vsetvl, none_preds, i_none_size_size_ops, )
>+DEF_RVV_FUNCTION (vsetvlmax, vsetvlmax, none_preds, i_none_size_void_ops, )
>
> /* 7. Vector Loads and Stores. */
>
> // 7.4. Vector Unit-Stride Instructions
>-DEF_RVV_FUNCTION (vle, loadstore, full_preds, all_v_scalar_const_ptr_ops)
>-DEF_RVV_FUNCTION (vse, loadstore, none_m_preds, all_v_scalar_ptr_ops)
>-DEF_RVV_FUNCTION (vlm, loadstore, none_preds, b_v_scalar_const_ptr_ops)
>-DEF_RVV_FUNCTION (vsm, loadstore, none_preds, b_v_scalar_ptr_ops)
>+DEF_RVV_FUNCTION (vle, loadstore, full_preds, all_v_scalar_const_ptr_ops, )
>+DEF_RVV_FUNCTION (vse, loadstore, none_m_preds, all_v_scalar_ptr_ops, )
>+DEF_RVV_FUNCTION (vlm, loadstore, none_preds, b_v_scalar_const_ptr_ops, )
>+DEF_RVV_FUNCTION (vsm, loadstore, none_preds, b_v_scalar_ptr_ops, )
>
> // 7.5. Vector Strided Instructions
>-DEF_RVV_FUNCTION (vlse, loadstore, full_preds,
>all_v_scalar_const_ptr_ptrdiff_ops)
>-DEF_RVV_FUNCTION (vsse, loadstore, none_m_preds, all_v_scalar_ptr_ptrdiff_ops)
>+DEF_RVV_FUNCTION (vlse, loadstore, full_preds,
>all_v_scalar_const_ptr_ptrdiff_ops, )
>+DEF_RVV_FUNCTION (vsse, loadstore, none_m_preds,
>all_v_scalar_ptr_ptrdiff_ops, )
>
> // 7.6. Vector Indexed Instructions
>-DEF_RVV_FUNCTION (vluxei8, indexed_loadstore, full_preds,
>all_v_scalar_const_ptr_eew8_index_ops)
>-DEF_RVV_FUNCTION (vluxei16, indexed_loadstore, full_preds,
>all_v_scalar_const_ptr_eew16_index_ops)
>-DEF_RVV_FUNCTION (vluxei32, indexed_loadstore, full_preds,
>all_v_scalar_const_ptr_eew32_index_ops)
>-DEF_RVV_FUNCTION (vluxei64, indexed_loadstore, full_preds,
>all_v_scalar_const_ptr_eew64_index_ops)
>-DEF_RVV_FUNCTION (vloxei8, indexed_loadstore, full_preds,
>all_v_scalar_const_ptr_eew8_index_ops)
>-DEF_RVV_FUNCTION (vloxei16, indexed_loadstore, full_preds,
>all_v_scalar_const_ptr_eew16_index_ops)
>-DEF_RVV_FUNCTION (vloxei32, indexed_loadstore, full_preds,
>all_v_scalar_const_ptr_eew32_index_ops)
>-DEF_RVV_FUNCTION (vloxei64, indexed_loadstore, full_preds,
>all_v_scalar_const_ptr_eew64_index_ops)
>-DEF_RVV_FUNCTION (vsuxei8, indexed_loadstore, none_m_preds,
>all_v_scalar_ptr_eew8_index_ops)
>-DEF_RVV_FUNCTION (vsuxei16, indexed_loadstore, none_m_preds,
>all_v_scalar_ptr_eew16_index_ops)
>-DEF_RVV_FUNCTION (vsuxei32, indexed_loadstore, none_m_preds,
>all_v_scalar_ptr_eew32_index_ops)
>-DEF_RVV_FUNCTION (vsuxei64, indexed_loadstore, none_m_preds,
>all_v_scalar_ptr_eew64_index_ops)
>-DEF_RVV_FUNCTION (vsoxei8, indexed_loadstore, none_m_preds,
>all_v_scalar_ptr_eew8_index_ops)
>-DEF_RVV_FUNCTION (vsoxei16, indexed_loadstore, none_m_preds,
>all_v_scalar_ptr_eew16_index_ops)
>-DEF_RVV_FUNCTION (vsoxei32, indexed_loadstore, none_m_preds,
>all_v_scalar_ptr_eew32_index_ops)
>-DEF_RVV_FUNCTION (vsoxei64, indexed_loadstore, none_m_preds,
>all_v_scalar_ptr_eew64_index_ops)
>+DEF_RVV_FUNCTION (vluxei8, indexed_loadstore, full_preds,
>all_v_scalar_const_ptr_eew8_index_ops, )
>+DEF_RVV_FUNCTION (vluxei16, indexed_loadstore, full_preds,
>all_v_scalar_const_ptr_eew16_index_ops, )
>+DEF_RVV_FUNCTION (vluxei32, indexed_loadstore, full_preds,
>all_v_scalar_const_ptr_eew32_index_ops, )
>+DEF_RVV_FUNCTION (vluxei64, indexed_loadstore, full_preds,
>all_v_scalar_const_ptr_eew64_index_ops, )
>+DEF_RVV_FUNCTION (vloxei8, indexed_loadstore, full_preds,
>all_v_scalar_const_ptr_eew8_index_ops, )
>+DEF_RVV_FUNCTION (vloxei16, indexed_loadstore, full_preds,
>all_v_scalar_const_ptr_eew16_index_ops, )
>+DEF_RVV_FUNCTION (vloxei32, indexed_loadstore, full_preds,
>all_v_scalar_const_ptr_eew32_index_ops, )
>+DEF_RVV_FUNCTION (vloxei64, indexed_loadstore, full_preds,
>all_v_scalar_const_ptr_eew64_index_ops, )
>+DEF_RVV_FUNCTION (vsuxei8, indexed_loadstore, none_m_preds,
>all_v_scalar_ptr_eew8_index_ops, )
>+DEF_RVV_FUNCTION (vsuxei16, indexed_loadstore, none_m_preds,
>all_v_scalar_ptr_eew16_index_ops, )
>+DEF_RVV_FUNCTION (vsuxei32, indexed_loadstore, none_m_preds,
>all_v_scalar_ptr_eew32_index_ops, )
>+DEF_RVV_FUNCTION (vsuxei64, indexed_loadstore, none_m_preds,
>all_v_scalar_ptr_eew64_index_ops, )
>+DEF_RVV_FUNCTION (vsoxei8, indexed_loadstore, none_m_preds,
>all_v_scalar_ptr_eew8_index_ops, )
>+DEF_RVV_FUNCTION (vsoxei16, indexed_loadstore, none_m_preds,
>all_v_scalar_ptr_eew16_index_ops, )
>+DEF_RVV_FUNCTION (vsoxei32, indexed_loadstore, none_m_preds,
>all_v_scalar_ptr_eew32_index_ops, )
>+DEF_RVV_FUNCTION (vsoxei64, indexed_loadstore, none_m_preds,
>all_v_scalar_ptr_eew64_index_ops, )
>
> // 7.7. Unit-stride Fault-Only-First Loads
>-DEF_RVV_FUNCTION (vleff, fault_load, full_preds,
>all_v_scalar_const_ptr_size_ptr_ops)
>+DEF_RVV_FUNCTION (vleff, fault_load, full_preds,
>all_v_scalar_const_ptr_size_ptr_ops, )
>
> // TODO: 7.8. Vector Load/Store Segment Instructions
>
> /* 11. Vector Integer Arithmetic Instructions. */
>
> // 11.1. Vector Single-Width Integer Add and Subtract
>-DEF_RVV_FUNCTION (vadd, alu, full_preds, iu_vvv_ops)
>-DEF_RVV_FUNCTION (vadd, alu, full_preds, iu_vvx_ops)
>-DEF_RVV_FUNCTION (vsub, alu, full_preds, iu_vvv_ops)
>-DEF_RVV_FUNCTION (vsub, alu, full_preds, iu_vvx_ops)
>-DEF_RVV_FUNCTION (vrsub, alu, full_preds, iu_vvx_ops)
>-DEF_RVV_FUNCTION (vneg, alu, full_preds, iu_v_ops)
>+DEF_RVV_FUNCTION (vadd, alu, full_preds, iu_vvv_ops, )
>+DEF_RVV_FUNCTION (vadd, alu, full_preds, iu_vvx_ops, )
>+DEF_RVV_FUNCTION (vsub, alu, full_preds, iu_vvv_ops, )
>+DEF_RVV_FUNCTION (vsub, alu, full_preds, iu_vvx_ops, )
>+DEF_RVV_FUNCTION (vrsub, alu, full_preds, iu_vvx_ops, )
>+DEF_RVV_FUNCTION (vneg, alu, full_preds, iu_v_ops, )
>
> // 11.2. Vector Widening Integer Add/Subtract
>-DEF_RVV_FUNCTION (vwaddu, widen_alu, full_preds, u_wvv_ops)
>-DEF_RVV_FUNCTION (vwaddu, widen_alu, full_preds, u_wvx_ops)
>-DEF_RVV_FUNCTION (vwsubu, widen_alu, full_preds, u_wvv_ops)
>-DEF_RVV_FUNCTION (vwsubu, widen_alu, full_preds, u_wvx_ops)
>-DEF_RVV_FUNCTION (vwadd, widen_alu, full_preds, i_wvv_ops)
>-DEF_RVV_FUNCTION (vwadd, widen_alu, full_preds, i_wvx_ops)
>-DEF_RVV_FUNCTION (vwsub, widen_alu, full_preds, i_wvv_ops)
>-DEF_RVV_FUNCTION (vwsub, widen_alu, full_preds, i_wvx_ops)
>-DEF_RVV_FUNCTION (vwaddu, widen_alu, full_preds, u_wwv_ops)
>-DEF_RVV_FUNCTION (vwaddu, widen_alu, full_preds, u_wwx_ops)
>-DEF_RVV_FUNCTION (vwsubu, widen_alu, full_preds, u_wwv_ops)
>-DEF_RVV_FUNCTION (vwsubu, widen_alu, full_preds, u_wwx_ops)
>-DEF_RVV_FUNCTION (vwadd, widen_alu, full_preds, i_wwv_ops)
>-DEF_RVV_FUNCTION (vwadd, widen_alu, full_preds, i_wwx_ops)
>-DEF_RVV_FUNCTION (vwsub, widen_alu, full_preds, i_wwv_ops)
>-DEF_RVV_FUNCTION (vwsub, widen_alu, full_preds, i_wwx_ops)
>-DEF_RVV_FUNCTION (vwcvt_x, alu, full_preds, i_x_x_v_ops)
>-DEF_RVV_FUNCTION (vwcvtu_x, alu, full_preds, u_x_x_v_ops)
>+DEF_RVV_FUNCTION (vwaddu, widen_alu, full_preds, u_wvv_ops, )
>+DEF_RVV_FUNCTION (vwaddu, widen_alu, full_preds, u_wvx_ops, )
>+DEF_RVV_FUNCTION (vwsubu, widen_alu, full_preds, u_wvv_ops, )
>+DEF_RVV_FUNCTION (vwsubu, widen_alu, full_preds, u_wvx_ops, )
>+DEF_RVV_FUNCTION (vwadd, widen_alu, full_preds, i_wvv_ops, )
>+DEF_RVV_FUNCTION (vwadd, widen_alu, full_preds, i_wvx_ops, )
>+DEF_RVV_FUNCTION (vwsub, widen_alu, full_preds, i_wvv_ops, )
>+DEF_RVV_FUNCTION (vwsub, widen_alu, full_preds, i_wvx_ops, )
>+DEF_RVV_FUNCTION (vwaddu, widen_alu, full_preds, u_wwv_ops, )
>+DEF_RVV_FUNCTION (vwaddu, widen_alu, full_preds, u_wwx_ops, )
>+DEF_RVV_FUNCTION (vwsubu, widen_alu, full_preds, u_wwv_ops, )
>+DEF_RVV_FUNCTION (vwsubu, widen_alu, full_preds, u_wwx_ops, )
>+DEF_RVV_FUNCTION (vwadd, widen_alu, full_preds, i_wwv_ops, )
>+DEF_RVV_FUNCTION (vwadd, widen_alu, full_preds, i_wwx_ops, )
>+DEF_RVV_FUNCTION (vwsub, widen_alu, full_preds, i_wwv_ops, )
>+DEF_RVV_FUNCTION (vwsub, widen_alu, full_preds, i_wwx_ops, )
>+DEF_RVV_FUNCTION (vwcvt_x, alu, full_preds, i_x_x_v_ops, )
>+DEF_RVV_FUNCTION (vwcvtu_x, alu, full_preds, u_x_x_v_ops, )
>
> // 11.3. Vector Integer Extension
>-DEF_RVV_FUNCTION (vzext, widen_alu, full_preds, u_vf2_ops)
>-DEF_RVV_FUNCTION (vzext, widen_alu, full_preds, u_vf4_ops)
>-DEF_RVV_FUNCTION (vzext, widen_alu, full_preds, u_vf8_ops)
>-DEF_RVV_FUNCTION (vsext, widen_alu, full_preds, i_vf2_ops)
>-DEF_RVV_FUNCTION (vsext, widen_alu, full_preds, i_vf4_ops)
>-DEF_RVV_FUNCTION (vsext, widen_alu, full_preds, i_vf8_ops)
>+DEF_RVV_FUNCTION (vzext, widen_alu, full_preds, u_vf2_ops, )
>+DEF_RVV_FUNCTION (vzext, widen_alu, full_preds, u_vf4_ops, )
>+DEF_RVV_FUNCTION (vzext, widen_alu, full_preds, u_vf8_ops, )
>+DEF_RVV_FUNCTION (vsext, widen_alu, full_preds, i_vf2_ops, )
>+DEF_RVV_FUNCTION (vsext, widen_alu, full_preds, i_vf4_ops, )
>+DEF_RVV_FUNCTION (vsext, widen_alu, full_preds, i_vf8_ops, )
>
> // 11.4. Vector Integer Add-with-Carry/Subtract-with-Borrow Instructions
>-DEF_RVV_FUNCTION (vadc, no_mask_policy, none_tu_preds, iu_vvvm_ops)
>-DEF_RVV_FUNCTION (vadc, no_mask_policy, none_tu_preds, iu_vvxm_ops)
>-DEF_RVV_FUNCTION (vmadc, return_mask, none_preds, iu_mvvm_ops)
>-DEF_RVV_FUNCTION (vmadc, return_mask, none_preds, iu_mvxm_ops)
>-DEF_RVV_FUNCTION (vmadc, return_mask, none_preds, iu_mvv_ops)
>-DEF_RVV_FUNCTION (vmadc, return_mask, none_preds, iu_mvx_ops)
>-DEF_RVV_FUNCTION (vsbc, no_mask_policy, none_tu_preds, iu_vvvm_ops)
>-DEF_RVV_FUNCTION (vsbc, no_mask_policy, none_tu_preds, iu_vvxm_ops)
>-DEF_RVV_FUNCTION (vmsbc, return_mask, none_preds, iu_mvvm_ops)
>-DEF_RVV_FUNCTION (vmsbc, return_mask, none_preds, iu_mvxm_ops)
>-DEF_RVV_FUNCTION (vmsbc, return_mask, none_preds, iu_mvv_ops)
>-DEF_RVV_FUNCTION (vmsbc, return_mask, none_preds, iu_mvx_ops)
>+DEF_RVV_FUNCTION (vadc, no_mask_policy, none_tu_preds, iu_vvvm_ops, )
>+DEF_RVV_FUNCTION (vadc, no_mask_policy, none_tu_preds, iu_vvxm_ops, )
>+DEF_RVV_FUNCTION (vmadc, return_mask, none_preds, iu_mvvm_ops, )
>+DEF_RVV_FUNCTION (vmadc, return_mask, none_preds, iu_mvxm_ops, )
>+DEF_RVV_FUNCTION (vmadc, return_mask, none_preds, iu_mvv_ops, )
>+DEF_RVV_FUNCTION (vmadc, return_mask, none_preds, iu_mvx_ops, )
>+DEF_RVV_FUNCTION (vsbc, no_mask_policy, none_tu_preds, iu_vvvm_ops, )
>+DEF_RVV_FUNCTION (vsbc, no_mask_policy, none_tu_preds, iu_vvxm_ops, )
>+DEF_RVV_FUNCTION (vmsbc, return_mask, none_preds, iu_mvvm_ops, )
>+DEF_RVV_FUNCTION (vmsbc, return_mask, none_preds, iu_mvxm_ops, )
>+DEF_RVV_FUNCTION (vmsbc, return_mask, none_preds, iu_mvv_ops, )
>+DEF_RVV_FUNCTION (vmsbc, return_mask, none_preds, iu_mvx_ops, )
>
> // 11.5. Vector Bitwise Logical Instructions
>-DEF_RVV_FUNCTION (vand, alu, full_preds, iu_vvv_ops)
>-DEF_RVV_FUNCTION (vand, alu, full_preds, iu_vvx_ops)
>-DEF_RVV_FUNCTION (vor, alu, full_preds, iu_vvv_ops)
>-DEF_RVV_FUNCTION (vor, alu, full_preds, iu_vvx_ops)
>-DEF_RVV_FUNCTION (vxor, alu, full_preds, iu_vvv_ops)
>-DEF_RVV_FUNCTION (vxor, alu, full_preds, iu_vvx_ops)
>-DEF_RVV_FUNCTION (vnot, alu, full_preds, iu_v_ops)
>+DEF_RVV_FUNCTION (vand, alu, full_preds, iu_vvv_ops, )
>+DEF_RVV_FUNCTION (vand, alu, full_preds, iu_vvx_ops, )
>+DEF_RVV_FUNCTION (vor, alu, full_preds, iu_vvv_ops, )
>+DEF_RVV_FUNCTION (vor, alu, full_preds, iu_vvx_ops, )
>+DEF_RVV_FUNCTION (vxor, alu, full_preds, iu_vvv_ops, )
>+DEF_RVV_FUNCTION (vxor, alu, full_preds, iu_vvx_ops, )
>+DEF_RVV_FUNCTION (vnot, alu, full_preds, iu_v_ops, )
>
> // 11.6. Vector Single-Width Shift Instructions
>-DEF_RVV_FUNCTION (vsll, alu, full_preds, iu_shift_vvv_ops)
>-DEF_RVV_FUNCTION (vsll, alu, full_preds, iu_shift_vvx_ops)
>-DEF_RVV_FUNCTION (vsra, alu, full_preds, i_shift_vvv_ops)
>-DEF_RVV_FUNCTION (vsra, alu, full_preds, i_shift_vvx_ops)
>-DEF_RVV_FUNCTION (vsrl, alu, full_preds, u_shift_vvv_ops)
>-DEF_RVV_FUNCTION (vsrl, alu, full_preds, u_shift_vvx_ops)
>+DEF_RVV_FUNCTION (vsll, alu, full_preds, iu_shift_vvv_ops, )
>+DEF_RVV_FUNCTION (vsll, alu, full_preds, iu_shift_vvx_ops, )
>+DEF_RVV_FUNCTION (vsra, alu, full_preds, i_shift_vvv_ops, )
>+DEF_RVV_FUNCTION (vsra, alu, full_preds, i_shift_vvx_ops, )
>+DEF_RVV_FUNCTION (vsrl, alu, full_preds, u_shift_vvv_ops, )
>+DEF_RVV_FUNCTION (vsrl, alu, full_preds, u_shift_vvx_ops, )
>
> // 11.7. Vector Narrowing Integer Right Shift Instructions
>-DEF_RVV_FUNCTION (vnsrl, narrow_alu, full_preds, u_narrow_shift_vwv_ops)
>-DEF_RVV_FUNCTION (vnsrl, narrow_alu, full_preds, u_narrow_shift_vwx_ops)
>-DEF_RVV_FUNCTION (vnsra, narrow_alu, full_preds, i_narrow_shift_vwv_ops)
>-DEF_RVV_FUNCTION (vnsra, narrow_alu, full_preds, i_narrow_shift_vwx_ops)
>-DEF_RVV_FUNCTION (vncvt_x, narrow_alu, full_preds, iu_trunc_ops)
>+DEF_RVV_FUNCTION (vnsrl, narrow_alu, full_preds, u_narrow_shift_vwv_ops, )
>+DEF_RVV_FUNCTION (vnsrl, narrow_alu, full_preds, u_narrow_shift_vwx_ops, )
>+DEF_RVV_FUNCTION (vnsra, narrow_alu, full_preds, i_narrow_shift_vwv_ops, )
>+DEF_RVV_FUNCTION (vnsra, narrow_alu, full_preds, i_narrow_shift_vwx_ops, )
>+DEF_RVV_FUNCTION (vncvt_x, narrow_alu, full_preds, iu_trunc_ops, )
>
> // 11.8. Vector Integer Compare Instructions
>-DEF_RVV_FUNCTION (vmseq, return_mask, none_m_mu_preds, iu_mvv_ops)
>-DEF_RVV_FUNCTION (vmseq, return_mask, none_m_mu_preds, iu_mvx_ops)
>-DEF_RVV_FUNCTION (vmsne, return_mask, none_m_mu_preds, iu_mvv_ops)
>-DEF_RVV_FUNCTION (vmsne, return_mask, none_m_mu_preds, iu_mvx_ops)
>-DEF_RVV_FUNCTION (vmsltu, return_mask, none_m_mu_preds, u_mvv_ops)
>-DEF_RVV_FUNCTION (vmsltu, return_mask, none_m_mu_preds, u_mvx_ops)
>-DEF_RVV_FUNCTION (vmslt, return_mask, none_m_mu_preds, i_mvv_ops)
>-DEF_RVV_FUNCTION (vmslt, return_mask, none_m_mu_preds, i_mvx_ops)
>-DEF_RVV_FUNCTION (vmsleu, return_mask, none_m_mu_preds, u_mvv_ops)
>-DEF_RVV_FUNCTION (vmsleu, return_mask, none_m_mu_preds, u_mvx_ops)
>-DEF_RVV_FUNCTION (vmsle, return_mask, none_m_mu_preds, i_mvv_ops)
>-DEF_RVV_FUNCTION (vmsle, return_mask, none_m_mu_preds, i_mvx_ops)
>-DEF_RVV_FUNCTION (vmsgtu, return_mask, none_m_mu_preds, u_mvv_ops)
>-DEF_RVV_FUNCTION (vmsgtu, return_mask, none_m_mu_preds, u_mvx_ops)
>-DEF_RVV_FUNCTION (vmsgt, return_mask, none_m_mu_preds, i_mvv_ops)
>-DEF_RVV_FUNCTION (vmsgt, return_mask, none_m_mu_preds, i_mvx_ops)
>-DEF_RVV_FUNCTION (vmsgeu, return_mask, none_m_mu_preds, u_mvv_ops)
>-DEF_RVV_FUNCTION (vmsgeu, return_mask, none_m_mu_preds, u_mvx_ops)
>-DEF_RVV_FUNCTION (vmsge, return_mask, none_m_mu_preds, i_mvv_ops)
>-DEF_RVV_FUNCTION (vmsge, return_mask, none_m_mu_preds, i_mvx_ops)
>+DEF_RVV_FUNCTION (vmseq, return_mask, none_m_mu_preds, iu_mvv_ops, )
>+DEF_RVV_FUNCTION (vmseq, return_mask, none_m_mu_preds, iu_mvx_ops, )
>+DEF_RVV_FUNCTION (vmsne, return_mask, none_m_mu_preds, iu_mvv_ops, )
>+DEF_RVV_FUNCTION (vmsne, return_mask, none_m_mu_preds, iu_mvx_ops, )
>+DEF_RVV_FUNCTION (vmsltu, return_mask, none_m_mu_preds, u_mvv_ops, )
>+DEF_RVV_FUNCTION (vmsltu, return_mask, none_m_mu_preds, u_mvx_ops, )
>+DEF_RVV_FUNCTION (vmslt, return_mask, none_m_mu_preds, i_mvv_ops, )
>+DEF_RVV_FUNCTION (vmslt, return_mask, none_m_mu_preds, i_mvx_ops, )
>+DEF_RVV_FUNCTION (vmsleu, return_mask, none_m_mu_preds, u_mvv_ops, )
>+DEF_RVV_FUNCTION (vmsleu, return_mask, none_m_mu_preds, u_mvx_ops, )
>+DEF_RVV_FUNCTION (vmsle, return_mask, none_m_mu_preds, i_mvv_ops, )
>+DEF_RVV_FUNCTION (vmsle, return_mask, none_m_mu_preds, i_mvx_ops, )
>+DEF_RVV_FUNCTION (vmsgtu, return_mask, none_m_mu_preds, u_mvv_ops, )
>+DEF_RVV_FUNCTION (vmsgtu, return_mask, none_m_mu_preds, u_mvx_ops, )
>+DEF_RVV_FUNCTION (vmsgt, return_mask, none_m_mu_preds, i_mvv_ops, )
>+DEF_RVV_FUNCTION (vmsgt, return_mask, none_m_mu_preds, i_mvx_ops, )
>+DEF_RVV_FUNCTION (vmsgeu, return_mask, none_m_mu_preds, u_mvv_ops, )
>+DEF_RVV_FUNCTION (vmsgeu, return_mask, none_m_mu_preds, u_mvx_ops, )
>+DEF_RVV_FUNCTION (vmsge, return_mask, none_m_mu_preds, i_mvv_ops, )
>+DEF_RVV_FUNCTION (vmsge, return_mask, none_m_mu_preds, i_mvx_ops, )
>
> // 11.9. Vector Integer Min/Max Instructions
>-DEF_RVV_FUNCTION (vminu, alu, full_preds, u_vvv_ops)
>-DEF_RVV_FUNCTION (vminu, alu, full_preds, u_vvx_ops)
>-DEF_RVV_FUNCTION (vmin, alu, full_preds, i_vvv_ops)
>-DEF_RVV_FUNCTION (vmin, alu, full_preds, i_vvx_ops)
>-DEF_RVV_FUNCTION (vmaxu, alu, full_preds, u_vvv_ops)
>-DEF_RVV_FUNCTION (vmaxu, alu, full_preds, u_vvx_ops)
>-DEF_RVV_FUNCTION (vmax, alu, full_preds, i_vvv_ops)
>-DEF_RVV_FUNCTION (vmax, alu, full_preds, i_vvx_ops)
>+DEF_RVV_FUNCTION (vminu, alu, full_preds, u_vvv_ops, )
>+DEF_RVV_FUNCTION (vminu, alu, full_preds, u_vvx_ops, )
>+DEF_RVV_FUNCTION (vmin, alu, full_preds, i_vvv_ops, )
>+DEF_RVV_FUNCTION (vmin, alu, full_preds, i_vvx_ops, )
>+DEF_RVV_FUNCTION (vmaxu, alu, full_preds, u_vvv_ops, )
>+DEF_RVV_FUNCTION (vmaxu, alu, full_preds, u_vvx_ops, )
>+DEF_RVV_FUNCTION (vmax, alu, full_preds, i_vvv_ops, )
>+DEF_RVV_FUNCTION (vmax, alu, full_preds, i_vvx_ops, )
>
> // 11.10. Vector Single-Width Integer Multiply Instructions
>-DEF_RVV_FUNCTION (vmul, alu, full_preds, iu_vvv_ops)
>-DEF_RVV_FUNCTION (vmul, alu, full_preds, iu_vvx_ops)
>-DEF_RVV_FUNCTION (vmulh, alu, full_preds, full_v_i_vvv_ops)
>-DEF_RVV_FUNCTION (vmulh, alu, full_preds, full_v_i_vvx_ops)
>-DEF_RVV_FUNCTION (vmulhu, alu, full_preds, full_v_u_vvv_ops)
>-DEF_RVV_FUNCTION (vmulhu, alu, full_preds, full_v_u_vvx_ops)
>-DEF_RVV_FUNCTION (vmulhsu, alu, full_preds, full_v_i_su_vvv_ops)
>-DEF_RVV_FUNCTION (vmulhsu, alu, full_preds, full_v_i_su_vvx_ops)
>+DEF_RVV_FUNCTION (vmul, alu, full_preds, iu_vvv_ops, )
>+DEF_RVV_FUNCTION (vmul, alu, full_preds, iu_vvx_ops, )
>+DEF_RVV_FUNCTION (vmulh, alu, full_preds, full_v_i_vvv_ops, )
>+DEF_RVV_FUNCTION (vmulh, alu, full_preds, full_v_i_vvx_ops, )
>+DEF_RVV_FUNCTION (vmulhu, alu, full_preds, full_v_u_vvv_ops, )
>+DEF_RVV_FUNCTION (vmulhu, alu, full_preds, full_v_u_vvx_ops, )
>+DEF_RVV_FUNCTION (vmulhsu, alu, full_preds, full_v_i_su_vvv_ops, )
>+DEF_RVV_FUNCTION (vmulhsu, alu, full_preds, full_v_i_su_vvx_ops, )
>
> // 11.11. Vector Integer Divide Instructions
>-DEF_RVV_FUNCTION (vdivu, alu, full_preds, u_vvv_ops)
>-DEF_RVV_FUNCTION (vdivu, alu, full_preds, u_vvx_ops)
>-DEF_RVV_FUNCTION (vdiv, alu, full_preds, i_vvv_ops)
>-DEF_RVV_FUNCTION (vdiv, alu, full_preds, i_vvx_ops)
>-DEF_RVV_FUNCTION (vremu, alu, full_preds, u_vvv_ops)
>-DEF_RVV_FUNCTION (vremu, alu, full_preds, u_vvx_ops)
>-DEF_RVV_FUNCTION (vrem, alu, full_preds, i_vvv_ops)
>-DEF_RVV_FUNCTION (vrem, alu, full_preds, i_vvx_ops)
>+DEF_RVV_FUNCTION (vdivu, alu, full_preds, u_vvv_ops, )
>+DEF_RVV_FUNCTION (vdivu, alu, full_preds, u_vvx_ops, )
>+DEF_RVV_FUNCTION (vdiv, alu, full_preds, i_vvv_ops, )
>+DEF_RVV_FUNCTION (vdiv, alu, full_preds, i_vvx_ops, )
>+DEF_RVV_FUNCTION (vremu, alu, full_preds, u_vvv_ops, )
>+DEF_RVV_FUNCTION (vremu, alu, full_preds, u_vvx_ops, )
>+DEF_RVV_FUNCTION (vrem, alu, full_preds, i_vvv_ops, )
>+DEF_RVV_FUNCTION (vrem, alu, full_preds, i_vvx_ops, )
>
> // 11.12. Vector Widening Integer Multiply Instructions
>-DEF_RVV_FUNCTION (vwmul, alu, full_preds, i_wvv_ops)
>-DEF_RVV_FUNCTION (vwmul, alu, full_preds, i_wvx_ops)
>-DEF_RVV_FUNCTION (vwmulu, alu, full_preds, u_wvv_ops)
>-DEF_RVV_FUNCTION (vwmulu, alu, full_preds, u_wvx_ops)
>-DEF_RVV_FUNCTION (vwmulsu, alu, full_preds, i_su_wvv_ops)
>-DEF_RVV_FUNCTION (vwmulsu, alu, full_preds, i_su_wvx_ops)
>+DEF_RVV_FUNCTION (vwmul, alu, full_preds, i_wvv_ops, )
>+DEF_RVV_FUNCTION (vwmul, alu, full_preds, i_wvx_ops, )
>+DEF_RVV_FUNCTION (vwmulu, alu, full_preds, u_wvv_ops, )
>+DEF_RVV_FUNCTION (vwmulu, alu, full_preds, u_wvx_ops, )
>+DEF_RVV_FUNCTION (vwmulsu, alu, full_preds, i_su_wvv_ops, )
>+DEF_RVV_FUNCTION (vwmulsu, alu, full_preds, i_su_wvx_ops, )
>
> // 11.13. Vector Single-Width Integer Multiply-Add Instructions
>-DEF_RVV_FUNCTION (vmacc, alu, full_preds, iu_vvvv_ops)
>-DEF_RVV_FUNCTION (vmacc, alu, full_preds, iu_vvxv_ops)
>-DEF_RVV_FUNCTION (vnmsac, alu, full_preds, iu_vvvv_ops)
>-DEF_RVV_FUNCTION (vnmsac, alu, full_preds, iu_vvxv_ops)
>-DEF_RVV_FUNCTION (vmadd, alu, full_preds, iu_vvvv_ops)
>-DEF_RVV_FUNCTION (vmadd, alu, full_preds, iu_vvxv_ops)
>-DEF_RVV_FUNCTION (vnmsub, alu, full_preds, iu_vvvv_ops)
>-DEF_RVV_FUNCTION (vnmsub, alu, full_preds, iu_vvxv_ops)
>+DEF_RVV_FUNCTION (vmacc, alu, full_preds, iu_vvvv_ops, )
>+DEF_RVV_FUNCTION (vmacc, alu, full_preds, iu_vvxv_ops, )
>+DEF_RVV_FUNCTION (vnmsac, alu, full_preds, iu_vvvv_ops, )
>+DEF_RVV_FUNCTION (vnmsac, alu, full_preds, iu_vvxv_ops, )
>+DEF_RVV_FUNCTION (vmadd, alu, full_preds, iu_vvvv_ops, )
>+DEF_RVV_FUNCTION (vmadd, alu, full_preds, iu_vvxv_ops, )
>+DEF_RVV_FUNCTION (vnmsub, alu, full_preds, iu_vvvv_ops, )
>+DEF_RVV_FUNCTION (vnmsub, alu, full_preds, iu_vvxv_ops, )
>
> // 11.14. Vector Widening Integer Multiply-Add Instructions
>-DEF_RVV_FUNCTION (vwmaccu, alu, full_preds, u_wwvv_ops)
>-DEF_RVV_FUNCTION (vwmaccu, alu, full_preds, u_wwxv_ops)
>-DEF_RVV_FUNCTION (vwmacc, alu, full_preds, i_wwvv_ops)
>-DEF_RVV_FUNCTION (vwmacc, alu, full_preds, i_wwxv_ops)
>-DEF_RVV_FUNCTION (vwmaccsu, alu, full_preds, i_su_wwvv_ops)
>-DEF_RVV_FUNCTION (vwmaccsu, alu, full_preds, i_su_wwxv_ops)
>-DEF_RVV_FUNCTION (vwmaccus, alu, full_preds, i_us_wwxv_ops)
>+DEF_RVV_FUNCTION (vwmaccu, alu, full_preds, u_wwvv_ops, )
>+DEF_RVV_FUNCTION (vwmaccu, alu, full_preds, u_wwxv_ops, )
>+DEF_RVV_FUNCTION (vwmacc, alu, full_preds, i_wwvv_ops, )
>+DEF_RVV_FUNCTION (vwmacc, alu, full_preds, i_wwxv_ops, )
>+DEF_RVV_FUNCTION (vwmaccsu, alu, full_preds, i_su_wwvv_ops, )
>+DEF_RVV_FUNCTION (vwmaccsu, alu, full_preds, i_su_wwxv_ops, )
>+DEF_RVV_FUNCTION (vwmaccus, alu, full_preds, i_us_wwxv_ops, )
>
> // 11.15. Vector Integer Merge Instructions
>-DEF_RVV_FUNCTION (vmerge, no_mask_policy, none_tu_preds, all_vvvm_ops)
>-DEF_RVV_FUNCTION (vmerge, no_mask_policy, none_tu_preds, iu_vvxm_ops)
>+DEF_RVV_FUNCTION (vmerge, no_mask_policy, none_tu_preds, all_vvvm_ops, )
>+DEF_RVV_FUNCTION (vmerge, no_mask_policy, none_tu_preds, iu_vvxm_ops, )
>
> // 11.16 Vector Integer Move Instructions
>-DEF_RVV_FUNCTION (vmv_v, move, none_tu_preds, all_v_ops)
>-DEF_RVV_FUNCTION (vmv_v, move, none_tu_preds, iu_x_ops)
>+DEF_RVV_FUNCTION (vmv_v, move, none_tu_preds, all_v_ops, )
>+DEF_RVV_FUNCTION (vmv_v, move, none_tu_preds, iu_x_ops, )
>
> /* 12. Vector Fixed-Point Arithmetic Instructions. */
>
> // 12.1. Vector Single-Width Saturating Add and Subtract
>-DEF_RVV_FUNCTION (vsaddu, alu, full_preds, u_vvv_ops)
>-DEF_RVV_FUNCTION (vsaddu, alu, full_preds, u_vvx_ops)
>-DEF_RVV_FUNCTION (vsadd, alu, full_preds, i_vvv_ops)
>-DEF_RVV_FUNCTION (vsadd, alu, full_preds, i_vvx_ops)
>-DEF_RVV_FUNCTION (vssubu, alu, full_preds, u_vvv_ops)
>-DEF_RVV_FUNCTION (vssubu, alu, full_preds, u_vvx_ops)
>-DEF_RVV_FUNCTION (vssub, alu, full_preds, i_vvv_ops)
>-DEF_RVV_FUNCTION (vssub, alu, full_preds, i_vvx_ops)
>+DEF_RVV_FUNCTION (vsaddu, alu, full_preds, u_vvv_ops, )
>+DEF_RVV_FUNCTION (vsaddu, alu, full_preds, u_vvx_ops, )
>+DEF_RVV_FUNCTION (vsadd, alu, full_preds, i_vvv_ops, )
>+DEF_RVV_FUNCTION (vsadd, alu, full_preds, i_vvx_ops, )
>+DEF_RVV_FUNCTION (vssubu, alu, full_preds, u_vvv_ops, )
>+DEF_RVV_FUNCTION (vssubu, alu, full_preds, u_vvx_ops, )
>+DEF_RVV_FUNCTION (vssub, alu, full_preds, i_vvv_ops, )
>+DEF_RVV_FUNCTION (vssub, alu, full_preds, i_vvx_ops, )
>
> // 12.2. Vector Single-Width Averaging Add and Subtract
>-DEF_RVV_FUNCTION (vaaddu, alu, full_preds, u_vvv_ops)
>-DEF_RVV_FUNCTION (vaaddu, alu, full_preds, u_vvx_ops)
>-DEF_RVV_FUNCTION (vaadd, alu, full_preds, i_vvv_ops)
>-DEF_RVV_FUNCTION (vaadd, alu, full_preds, i_vvx_ops)
>-DEF_RVV_FUNCTION (vasubu, alu, full_preds, u_vvv_ops)
>-DEF_RVV_FUNCTION (vasubu, alu, full_preds, u_vvx_ops)
>-DEF_RVV_FUNCTION (vasub, alu, full_preds, i_vvv_ops)
>-DEF_RVV_FUNCTION (vasub, alu, full_preds, i_vvx_ops)
>+DEF_RVV_FUNCTION (vaaddu, alu, full_preds, u_vvv_ops, )
>+DEF_RVV_FUNCTION (vaaddu, alu, full_preds, u_vvx_ops, )
>+DEF_RVV_FUNCTION (vaadd, alu, full_preds, i_vvv_ops, )
>+DEF_RVV_FUNCTION (vaadd, alu, full_preds, i_vvx_ops, )
>+DEF_RVV_FUNCTION (vasubu, alu, full_preds, u_vvv_ops, )
>+DEF_RVV_FUNCTION (vasubu, alu, full_preds, u_vvx_ops, )
>+DEF_RVV_FUNCTION (vasub, alu, full_preds, i_vvv_ops, )
>+DEF_RVV_FUNCTION (vasub, alu, full_preds, i_vvx_ops, )
>
> // 12.3. Vector Single-Width Fractional Multiply with Rounding and Saturation
>-DEF_RVV_FUNCTION (vsmul, alu, full_preds, full_v_i_vvv_ops)
>-DEF_RVV_FUNCTION (vsmul, alu, full_preds, full_v_i_vvx_ops)
>+DEF_RVV_FUNCTION (vsmul, alu, full_preds, full_v_i_vvv_ops, )
>+DEF_RVV_FUNCTION (vsmul, alu, full_preds, full_v_i_vvx_ops, )
>
> // 12.4. Vector Single-Width Scaling Shift Instructions
>-DEF_RVV_FUNCTION (vssrl, alu, full_preds, u_shift_vvv_ops)
>-DEF_RVV_FUNCTION (vssrl, alu, full_preds, u_shift_vvx_ops)
>-DEF_RVV_FUNCTION (vssra, alu, full_preds, i_shift_vvv_ops)
>-DEF_RVV_FUNCTION (vssra, alu, full_preds, i_shift_vvx_ops)
>+DEF_RVV_FUNCTION (vssrl, alu, full_preds, u_shift_vvv_ops, )
>+DEF_RVV_FUNCTION (vssrl, alu, full_preds, u_shift_vvx_ops, )
>+DEF_RVV_FUNCTION (vssra, alu, full_preds, i_shift_vvv_ops, )
>+DEF_RVV_FUNCTION (vssra, alu, full_preds, i_shift_vvx_ops, )
>
> // 12.5. Vector Narrowing Fixed-Point Clip Instructions
>-DEF_RVV_FUNCTION (vnclipu, narrow_alu, full_preds, u_narrow_shift_vwv_ops)
>-DEF_RVV_FUNCTION (vnclipu, narrow_alu, full_preds, u_narrow_shift_vwx_ops)
>-DEF_RVV_FUNCTION (vnclip, narrow_alu, full_preds, i_narrow_shift_vwv_ops)
>-DEF_RVV_FUNCTION (vnclip, narrow_alu, full_preds, i_narrow_shift_vwx_ops)
>+DEF_RVV_FUNCTION (vnclipu, narrow_alu, full_preds, u_narrow_shift_vwv_ops, )
>+DEF_RVV_FUNCTION (vnclipu, narrow_alu, full_preds, u_narrow_shift_vwx_ops, )
>+DEF_RVV_FUNCTION (vnclip, narrow_alu, full_preds, i_narrow_shift_vwv_ops, )
>+DEF_RVV_FUNCTION (vnclip, narrow_alu, full_preds, i_narrow_shift_vwx_ops, )
>
> /* 13. Vector Floating-Point Instructions. */
>
> // 13.2. Vector Single-Width Floating-Point Add/Subtract Instructions
>-DEF_RVV_FUNCTION (vfadd, alu, full_preds, f_vvv_ops)
>-DEF_RVV_FUNCTION (vfadd, alu, full_preds, f_vvf_ops)
>-DEF_RVV_FUNCTION (vfsub, alu, full_preds, f_vvv_ops)
>-DEF_RVV_FUNCTION (vfsub, alu, full_preds, f_vvf_ops)
>-DEF_RVV_FUNCTION (vfrsub, alu, full_preds, f_vvf_ops)
>-DEF_RVV_FUNCTION (vfadd_frm, alu_frm, full_preds, f_vvv_ops)
>-DEF_RVV_FUNCTION (vfadd_frm, alu_frm, full_preds, f_vvf_ops)
>-DEF_RVV_FUNCTION (vfsub_frm, alu_frm, full_preds, f_vvv_ops)
>-DEF_RVV_FUNCTION (vfsub_frm, alu_frm, full_preds, f_vvf_ops)
>-DEF_RVV_FUNCTION (vfrsub_frm, alu_frm, full_preds, f_vvf_ops)
>+DEF_RVV_FUNCTION (vfadd, alu, full_preds, f_vvv_ops, )
>+DEF_RVV_FUNCTION (vfadd, alu, full_preds, f_vvf_ops, )
>+DEF_RVV_FUNCTION (vfsub, alu, full_preds, f_vvv_ops, )
>+DEF_RVV_FUNCTION (vfsub, alu, full_preds, f_vvf_ops, )
>+DEF_RVV_FUNCTION (vfrsub, alu, full_preds, f_vvf_ops, )
>+DEF_RVV_FUNCTION (vfadd_frm, alu_frm, full_preds, f_vvv_ops, )
>+DEF_RVV_FUNCTION (vfadd_frm, alu_frm, full_preds, f_vvf_ops, )
>+DEF_RVV_FUNCTION (vfsub_frm, alu_frm, full_preds, f_vvv_ops, )
>+DEF_RVV_FUNCTION (vfsub_frm, alu_frm, full_preds, f_vvf_ops, )
>+DEF_RVV_FUNCTION (vfrsub_frm, alu_frm, full_preds, f_vvf_ops, )
>
> // 13.3. Vector Widening Floating-Point Add/Subtract Instructions
>-DEF_RVV_FUNCTION (vfwadd, widen_alu, full_preds, f_wvv_ops)
>-DEF_RVV_FUNCTION (vfwadd, widen_alu, full_preds, f_wvf_ops)
>-DEF_RVV_FUNCTION (vfwsub, widen_alu, full_preds, f_wvv_ops)
>-DEF_RVV_FUNCTION (vfwsub, widen_alu, full_preds, f_wvf_ops)
>-DEF_RVV_FUNCTION (vfwadd, widen_alu, full_preds, f_wwv_ops)
>-DEF_RVV_FUNCTION (vfwadd, widen_alu, full_preds, f_wwf_ops)
>-DEF_RVV_FUNCTION (vfwsub, widen_alu, full_preds, f_wwv_ops)
>-DEF_RVV_FUNCTION (vfwsub, widen_alu, full_preds, f_wwf_ops)
>-DEF_RVV_FUNCTION (vfwadd_frm, widen_alu_frm, full_preds, f_wvv_ops)
>-DEF_RVV_FUNCTION (vfwadd_frm, widen_alu_frm, full_preds, f_wvf_ops)
>-DEF_RVV_FUNCTION (vfwsub_frm, widen_alu_frm, full_preds, f_wvv_ops)
>-DEF_RVV_FUNCTION (vfwsub_frm, widen_alu_frm, full_preds, f_wvf_ops)
>-DEF_RVV_FUNCTION (vfwadd_frm, widen_alu_frm, full_preds, f_wwv_ops)
>-DEF_RVV_FUNCTION (vfwadd_frm, widen_alu_frm, full_preds, f_wwf_ops)
>-DEF_RVV_FUNCTION (vfwsub_frm, widen_alu_frm, full_preds, f_wwv_ops)
>-DEF_RVV_FUNCTION (vfwsub_frm, widen_alu_frm, full_preds, f_wwf_ops)
>+DEF_RVV_FUNCTION (vfwadd, widen_alu, full_preds, f_wvv_ops, )
>+DEF_RVV_FUNCTION (vfwadd, widen_alu, full_preds, f_wvf_ops, )
>+DEF_RVV_FUNCTION (vfwsub, widen_alu, full_preds, f_wvv_ops, )
>+DEF_RVV_FUNCTION (vfwsub, widen_alu, full_preds, f_wvf_ops, )
>+DEF_RVV_FUNCTION (vfwadd, widen_alu, full_preds, f_wwv_ops, )
>+DEF_RVV_FUNCTION (vfwadd, widen_alu, full_preds, f_wwf_ops, )
>+DEF_RVV_FUNCTION (vfwsub, widen_alu, full_preds, f_wwv_ops, )
>+DEF_RVV_FUNCTION (vfwsub, widen_alu, full_preds, f_wwf_ops, )
>+DEF_RVV_FUNCTION (vfwadd_frm, widen_alu_frm, full_preds, f_wvv_ops, )
>+DEF_RVV_FUNCTION (vfwadd_frm, widen_alu_frm, full_preds, f_wvf_ops, )
>+DEF_RVV_FUNCTION (vfwsub_frm, widen_alu_frm, full_preds, f_wvv_ops, )
>+DEF_RVV_FUNCTION (vfwsub_frm, widen_alu_frm, full_preds, f_wvf_ops, )
>+DEF_RVV_FUNCTION (vfwadd_frm, widen_alu_frm, full_preds, f_wwv_ops, )
>+DEF_RVV_FUNCTION (vfwadd_frm, widen_alu_frm, full_preds, f_wwf_ops, )
>+DEF_RVV_FUNCTION (vfwsub_frm, widen_alu_frm, full_preds, f_wwv_ops, )
>+DEF_RVV_FUNCTION (vfwsub_frm, widen_alu_frm, full_preds, f_wwf_ops, )
>
> // 13.4. Vector Single-Width Floating-Point Multiply/Divide Instructions
>-DEF_RVV_FUNCTION (vfmul, alu, full_preds, f_vvv_ops)
>-DEF_RVV_FUNCTION (vfmul, alu, full_preds, f_vvf_ops)
>-DEF_RVV_FUNCTION (vfdiv, alu, full_preds, f_vvv_ops)
>-DEF_RVV_FUNCTION (vfdiv, alu, full_preds, f_vvf_ops)
>-DEF_RVV_FUNCTION (vfrdiv, alu, full_preds, f_vvf_ops)
>-DEF_RVV_FUNCTION (vfmul_frm, alu_frm, full_preds, f_vvv_ops)
>-DEF_RVV_FUNCTION (vfmul_frm, alu_frm, full_preds, f_vvf_ops)
>-DEF_RVV_FUNCTION (vfdiv_frm, alu_frm, full_preds, f_vvv_ops)
>-DEF_RVV_FUNCTION (vfdiv_frm, alu_frm, full_preds, f_vvf_ops)
>-DEF_RVV_FUNCTION (vfrdiv_frm, alu_frm, full_preds, f_vvf_ops)
>+DEF_RVV_FUNCTION (vfmul, alu, full_preds, f_vvv_ops, )
>+DEF_RVV_FUNCTION (vfmul, alu, full_preds, f_vvf_ops, )
>+DEF_RVV_FUNCTION (vfdiv, alu, full_preds, f_vvv_ops, )
>+DEF_RVV_FUNCTION (vfdiv, alu, full_preds, f_vvf_ops, )
>+DEF_RVV_FUNCTION (vfrdiv, alu, full_preds, f_vvf_ops, )
>+DEF_RVV_FUNCTION (vfmul_frm, alu_frm, full_preds, f_vvv_ops, )
>+DEF_RVV_FUNCTION (vfmul_frm, alu_frm, full_preds, f_vvf_ops, )
>+DEF_RVV_FUNCTION (vfdiv_frm, alu_frm, full_preds, f_vvv_ops, )
>+DEF_RVV_FUNCTION (vfdiv_frm, alu_frm, full_preds, f_vvf_ops, )
>+DEF_RVV_FUNCTION (vfrdiv_frm, alu_frm, full_preds, f_vvf_ops, )
>
> // 13.5. Vector Widening Floating-Point Multiply
>-DEF_RVV_FUNCTION (vfwmul, alu, full_preds, f_wvv_ops)
>-DEF_RVV_FUNCTION (vfwmul, alu, full_preds, f_wvf_ops)
>-DEF_RVV_FUNCTION (vfwmul_frm, alu_frm, full_preds, f_wvv_ops)
>-DEF_RVV_FUNCTION (vfwmul_frm, alu_frm, full_preds, f_wvf_ops)
>+DEF_RVV_FUNCTION (vfwmul, alu, full_preds, f_wvv_ops, )
>+DEF_RVV_FUNCTION (vfwmul, alu, full_preds, f_wvf_ops, )
>+DEF_RVV_FUNCTION (vfwmul_frm, alu_frm, full_preds, f_wvv_ops, )
>+DEF_RVV_FUNCTION (vfwmul_frm, alu_frm, full_preds, f_wvf_ops, )
>
> // 13.6. Vector Single-Width Floating-Point Fused Multiply-Add Instructions
>-DEF_RVV_FUNCTION (vfmacc, alu, full_preds, f_vvvv_ops)
>-DEF_RVV_FUNCTION (vfmacc, alu, full_preds, f_vvfv_ops)
>-DEF_RVV_FUNCTION (vfnmsac, alu, full_preds, f_vvvv_ops)
>-DEF_RVV_FUNCTION (vfnmsac, alu, full_preds, f_vvfv_ops)
>-DEF_RVV_FUNCTION (vfmadd, alu, full_preds, f_vvvv_ops)
>-DEF_RVV_FUNCTION (vfmadd, alu, full_preds, f_vvfv_ops)
>-DEF_RVV_FUNCTION (vfnmsub, alu, full_preds, f_vvvv_ops)
>-DEF_RVV_FUNCTION (vfnmsub, alu, full_preds, f_vvfv_ops)
>-DEF_RVV_FUNCTION (vfnmacc, alu, full_preds, f_vvvv_ops)
>-DEF_RVV_FUNCTION (vfnmacc, alu, full_preds, f_vvfv_ops)
>-DEF_RVV_FUNCTION (vfmsac, alu, full_preds, f_vvvv_ops)
>-DEF_RVV_FUNCTION (vfmsac, alu, full_preds, f_vvfv_ops)
>-DEF_RVV_FUNCTION (vfnmadd, alu, full_preds, f_vvvv_ops)
>-DEF_RVV_FUNCTION (vfnmadd, alu, full_preds, f_vvfv_ops)
>-DEF_RVV_FUNCTION (vfmsub, alu, full_preds, f_vvvv_ops)
>-DEF_RVV_FUNCTION (vfmsub, alu, full_preds, f_vvfv_ops)
>-
>-DEF_RVV_FUNCTION (vfmacc_frm, alu_frm, full_preds, f_vvvv_ops)
>-DEF_RVV_FUNCTION (vfmacc_frm, alu_frm, full_preds, f_vvfv_ops)
>-DEF_RVV_FUNCTION (vfnmacc_frm, alu_frm, full_preds, f_vvvv_ops)
>-DEF_RVV_FUNCTION (vfnmacc_frm, alu_frm, full_preds, f_vvfv_ops)
>-DEF_RVV_FUNCTION (vfmsac_frm, alu_frm, full_preds, f_vvvv_ops)
>-DEF_RVV_FUNCTION (vfmsac_frm, alu_frm, full_preds, f_vvfv_ops)
>-DEF_RVV_FUNCTION (vfnmsac_frm, alu_frm, full_preds, f_vvvv_ops)
>-DEF_RVV_FUNCTION (vfnmsac_frm, alu_frm, full_preds, f_vvfv_ops)
>-DEF_RVV_FUNCTION (vfmadd_frm, alu_frm, full_preds, f_vvvv_ops)
>-DEF_RVV_FUNCTION (vfmadd_frm, alu_frm, full_preds, f_vvfv_ops)
>-DEF_RVV_FUNCTION (vfnmadd_frm, alu_frm, full_preds, f_vvvv_ops)
>-DEF_RVV_FUNCTION (vfnmadd_frm, alu_frm, full_preds, f_vvfv_ops)
>-DEF_RVV_FUNCTION (vfmsub_frm, alu_frm, full_preds, f_vvvv_ops)
>-DEF_RVV_FUNCTION (vfmsub_frm, alu_frm, full_preds, f_vvfv_ops)
>-DEF_RVV_FUNCTION (vfnmsub_frm, alu_frm, full_preds, f_vvvv_ops)
>-DEF_RVV_FUNCTION (vfnmsub_frm, alu_frm, full_preds, f_vvfv_ops)
>+DEF_RVV_FUNCTION (vfmacc, alu, full_preds, f_vvvv_ops, )
>+DEF_RVV_FUNCTION (vfmacc, alu, full_preds, f_vvfv_ops, )
>+DEF_RVV_FUNCTION (vfnmsac, alu, full_preds, f_vvvv_ops, )
>+DEF_RVV_FUNCTION (vfnmsac, alu, full_preds, f_vvfv_ops, )
>+DEF_RVV_FUNCTION (vfmadd, alu, full_preds, f_vvvv_ops, )
>+DEF_RVV_FUNCTION (vfmadd, alu, full_preds, f_vvfv_ops, )
>+DEF_RVV_FUNCTION (vfnmsub, alu, full_preds, f_vvvv_ops, )
>+DEF_RVV_FUNCTION (vfnmsub, alu, full_preds, f_vvfv_ops, )
>+DEF_RVV_FUNCTION (vfnmacc, alu, full_preds, f_vvvv_ops, )
>+DEF_RVV_FUNCTION (vfnmacc, alu, full_preds, f_vvfv_ops, )
>+DEF_RVV_FUNCTION (vfmsac, alu, full_preds, f_vvvv_ops, )
>+DEF_RVV_FUNCTION (vfmsac, alu, full_preds, f_vvfv_ops, )
>+DEF_RVV_FUNCTION (vfnmadd, alu, full_preds, f_vvvv_ops, )
>+DEF_RVV_FUNCTION (vfnmadd, alu, full_preds, f_vvfv_ops, )
>+DEF_RVV_FUNCTION (vfmsub, alu, full_preds, f_vvvv_ops, )
>+DEF_RVV_FUNCTION (vfmsub, alu, full_preds, f_vvfv_ops, )
>+
>+DEF_RVV_FUNCTION (vfmacc_frm, alu_frm, full_preds, f_vvvv_ops, )
>+DEF_RVV_FUNCTION (vfmacc_frm, alu_frm, full_preds, f_vvfv_ops, )
>+DEF_RVV_FUNCTION (vfnmacc_frm, alu_frm, full_preds, f_vvvv_ops, )
>+DEF_RVV_FUNCTION (vfnmacc_frm, alu_frm, full_preds, f_vvfv_ops, )
>+DEF_RVV_FUNCTION (vfmsac_frm, alu_frm, full_preds, f_vvvv_ops, )
>+DEF_RVV_FUNCTION (vfmsac_frm, alu_frm, full_preds, f_vvfv_ops, )
>+DEF_RVV_FUNCTION (vfnmsac_frm, alu_frm, full_preds, f_vvvv_ops, )
>+DEF_RVV_FUNCTION (vfnmsac_frm, alu_frm, full_preds, f_vvfv_ops, )
>+DEF_RVV_FUNCTION (vfmadd_frm, alu_frm, full_preds, f_vvvv_ops, )
>+DEF_RVV_FUNCTION (vfmadd_frm, alu_frm, full_preds, f_vvfv_ops, )
>+DEF_RVV_FUNCTION (vfnmadd_frm, alu_frm, full_preds, f_vvvv_ops, )
>+DEF_RVV_FUNCTION (vfnmadd_frm, alu_frm, full_preds, f_vvfv_ops, )
>+DEF_RVV_FUNCTION (vfmsub_frm, alu_frm, full_preds, f_vvvv_ops, )
>+DEF_RVV_FUNCTION (vfmsub_frm, alu_frm, full_preds, f_vvfv_ops, )
>+DEF_RVV_FUNCTION (vfnmsub_frm, alu_frm, full_preds, f_vvvv_ops, )
>+DEF_RVV_FUNCTION (vfnmsub_frm, alu_frm, full_preds, f_vvfv_ops, )
>
> // 13.7. Vector Widening Floating-Point Fused Multiply-Add Instructions
>-DEF_RVV_FUNCTION (vfwmacc, alu, full_preds, f_wwvv_ops)
>-DEF_RVV_FUNCTION (vfwmacc, alu, full_preds, f_wwfv_ops)
>-DEF_RVV_FUNCTION (vfwnmacc, alu, full_preds, f_wwvv_ops)
>-DEF_RVV_FUNCTION (vfwnmacc, alu, full_preds, f_wwfv_ops)
>-DEF_RVV_FUNCTION (vfwmsac, alu, full_preds, f_wwvv_ops)
>-DEF_RVV_FUNCTION (vfwmsac, alu, full_preds, f_wwfv_ops)
>-DEF_RVV_FUNCTION (vfwnmsac, alu, full_preds, f_wwvv_ops)
>-DEF_RVV_FUNCTION (vfwnmsac, alu, full_preds, f_wwfv_ops)
>-
>-DEF_RVV_FUNCTION (vfwmacc_frm, alu_frm, full_preds, f_wwvv_ops)
>-DEF_RVV_FUNCTION (vfwmacc_frm, alu_frm, full_preds, f_wwfv_ops)
>-DEF_RVV_FUNCTION (vfwnmacc_frm, alu_frm, full_preds, f_wwvv_ops)
>-DEF_RVV_FUNCTION (vfwnmacc_frm, alu_frm, full_preds, f_wwfv_ops)
>-DEF_RVV_FUNCTION (vfwmsac_frm, alu_frm, full_preds, f_wwvv_ops)
>-DEF_RVV_FUNCTION (vfwmsac_frm, alu_frm, full_preds, f_wwfv_ops)
>-DEF_RVV_FUNCTION (vfwnmsac_frm, alu_frm, full_preds, f_wwvv_ops)
>-DEF_RVV_FUNCTION (vfwnmsac_frm, alu_frm, full_preds, f_wwfv_ops)
>+DEF_RVV_FUNCTION (vfwmacc, alu, full_preds, f_wwvv_ops, )
>+DEF_RVV_FUNCTION (vfwmacc, alu, full_preds, f_wwfv_ops, )
>+DEF_RVV_FUNCTION (vfwnmacc, alu, full_preds, f_wwvv_ops, )
>+DEF_RVV_FUNCTION (vfwnmacc, alu, full_preds, f_wwfv_ops, )
>+DEF_RVV_FUNCTION (vfwmsac, alu, full_preds, f_wwvv_ops, )
>+DEF_RVV_FUNCTION (vfwmsac, alu, full_preds, f_wwfv_ops, )
>+DEF_RVV_FUNCTION (vfwnmsac, alu, full_preds, f_wwvv_ops, )
>+DEF_RVV_FUNCTION (vfwnmsac, alu, full_preds, f_wwfv_ops, )
>+
>+DEF_RVV_FUNCTION (vfwmacc_frm, alu_frm, full_preds, f_wwvv_ops, )
>+DEF_RVV_FUNCTION (vfwmacc_frm, alu_frm, full_preds, f_wwfv_ops, )
>+DEF_RVV_FUNCTION (vfwnmacc_frm, alu_frm, full_preds, f_wwvv_ops, )
>+DEF_RVV_FUNCTION (vfwnmacc_frm, alu_frm, full_preds, f_wwfv_ops, )
>+DEF_RVV_FUNCTION (vfwmsac_frm, alu_frm, full_preds, f_wwvv_ops, )
>+DEF_RVV_FUNCTION (vfwmsac_frm, alu_frm, full_preds, f_wwfv_ops, )
>+DEF_RVV_FUNCTION (vfwnmsac_frm, alu_frm, full_preds, f_wwvv_ops, )
>+DEF_RVV_FUNCTION (vfwnmsac_frm, alu_frm, full_preds, f_wwfv_ops, )
>
> // 13.8. Vector Floating-Point Square-Root Instruction
>-DEF_RVV_FUNCTION (vfsqrt, alu, full_preds, f_v_ops)
>+DEF_RVV_FUNCTION (vfsqrt, alu, full_preds, f_v_ops, )
>
>-DEF_RVV_FUNCTION (vfsqrt_frm, alu_frm, full_preds, f_v_ops)
>+DEF_RVV_FUNCTION (vfsqrt_frm, alu_frm, full_preds, f_v_ops, )
>
> // 13.9. Vector Floating-Point Reciprocal Square-Root Estimate Instruction
>-DEF_RVV_FUNCTION (vfrsqrt7, alu, full_preds, f_v_ops)
>+DEF_RVV_FUNCTION (vfrsqrt7, alu, full_preds, f_v_ops, )
>
> // 13.10. Vector Floating-Point Reciprocal Estimate Instruction
>-DEF_RVV_FUNCTION (vfrec7, alu, full_preds, f_v_ops)
>+DEF_RVV_FUNCTION (vfrec7, alu, full_preds, f_v_ops, )
>
>-DEF_RVV_FUNCTION (vfrec7_frm, alu_frm, full_preds, f_v_ops)
>+DEF_RVV_FUNCTION (vfrec7_frm, alu_frm, full_preds, f_v_ops, )
>
> // 13.11. Vector Floating-Point MIN/MAX Instructions
>-DEF_RVV_FUNCTION (vfmin, alu, full_preds, f_vvv_ops)
>-DEF_RVV_FUNCTION (vfmin, alu, full_preds, f_vvf_ops)
>-DEF_RVV_FUNCTION (vfmax, alu, full_preds, f_vvv_ops)
>-DEF_RVV_FUNCTION (vfmax, alu, full_preds, f_vvf_ops)
>+DEF_RVV_FUNCTION (vfmin, alu, full_preds, f_vvv_ops, )
>+DEF_RVV_FUNCTION (vfmin, alu, full_preds, f_vvf_ops, )
>+DEF_RVV_FUNCTION (vfmax, alu, full_preds, f_vvv_ops, )
>+DEF_RVV_FUNCTION (vfmax, alu, full_preds, f_vvf_ops, )
>
> // 13.12. Vector Floating-Point Sign-Injection Instructions
>-DEF_RVV_FUNCTION (vfsgnj, alu, full_preds, f_vvv_ops)
>-DEF_RVV_FUNCTION (vfsgnj, alu, full_preds, f_vvf_ops)
>-DEF_RVV_FUNCTION (vfsgnjn, alu, full_preds, f_vvv_ops)
>-DEF_RVV_FUNCTION (vfsgnjn, alu, full_preds, f_vvf_ops)
>-DEF_RVV_FUNCTION (vfsgnjx, alu, full_preds, f_vvv_ops)
>-DEF_RVV_FUNCTION (vfsgnjx, alu, full_preds, f_vvf_ops)
>-DEF_RVV_FUNCTION (vfneg, alu, full_preds, f_v_ops)
>-DEF_RVV_FUNCTION (vfabs, alu, full_preds, f_v_ops)
>+DEF_RVV_FUNCTION (vfsgnj, alu, full_preds, f_vvv_ops, )
>+DEF_RVV_FUNCTION (vfsgnj, alu, full_preds, f_vvf_ops, )
>+DEF_RVV_FUNCTION (vfsgnjn, alu, full_preds, f_vvv_ops, )
>+DEF_RVV_FUNCTION (vfsgnjn, alu, full_preds, f_vvf_ops, )
>+DEF_RVV_FUNCTION (vfsgnjx, alu, full_preds, f_vvv_ops, )
>+DEF_RVV_FUNCTION (vfsgnjx, alu, full_preds, f_vvf_ops, )
>+DEF_RVV_FUNCTION (vfneg, alu, full_preds, f_v_ops, )
>+DEF_RVV_FUNCTION (vfabs, alu, full_preds, f_v_ops, )
>
> // 13.13. Vector Floating-Point Compare Instructions
>-DEF_RVV_FUNCTION (vmfeq, return_mask, none_m_mu_preds, f_mvv_ops)
>-DEF_RVV_FUNCTION (vmfeq, return_mask, none_m_mu_preds, f_mvf_ops)
>-DEF_RVV_FUNCTION (vmfne, return_mask, none_m_mu_preds, f_mvv_ops)
>-DEF_RVV_FUNCTION (vmfne, return_mask, none_m_mu_preds, f_mvf_ops)
>-DEF_RVV_FUNCTION (vmflt, return_mask, none_m_mu_preds, f_mvv_ops)
>-DEF_RVV_FUNCTION (vmflt, return_mask, none_m_mu_preds, f_mvf_ops)
>-DEF_RVV_FUNCTION (vmfle, return_mask, none_m_mu_preds, f_mvv_ops)
>-DEF_RVV_FUNCTION (vmfle, return_mask, none_m_mu_preds, f_mvf_ops)
>-DEF_RVV_FUNCTION (vmfgt, return_mask, none_m_mu_preds, f_mvv_ops)
>-DEF_RVV_FUNCTION (vmfgt, return_mask, none_m_mu_preds, f_mvf_ops)
>-DEF_RVV_FUNCTION (vmfge, return_mask, none_m_mu_preds, f_mvv_ops)
>-DEF_RVV_FUNCTION (vmfge, return_mask, none_m_mu_preds, f_mvf_ops)
>+DEF_RVV_FUNCTION (vmfeq, return_mask, none_m_mu_preds, f_mvv_ops, )
>+DEF_RVV_FUNCTION (vmfeq, return_mask, none_m_mu_preds, f_mvf_ops, )
>+DEF_RVV_FUNCTION (vmfne, return_mask, none_m_mu_preds, f_mvv_ops, )
>+DEF_RVV_FUNCTION (vmfne, return_mask, none_m_mu_preds, f_mvf_ops, )
>+DEF_RVV_FUNCTION (vmflt, return_mask, none_m_mu_preds, f_mvv_ops, )
>+DEF_RVV_FUNCTION (vmflt, return_mask, none_m_mu_preds, f_mvf_ops, )
>+DEF_RVV_FUNCTION (vmfle, return_mask, none_m_mu_preds, f_mvv_ops, )
>+DEF_RVV_FUNCTION (vmfle, return_mask, none_m_mu_preds, f_mvf_ops, )
>+DEF_RVV_FUNCTION (vmfgt, return_mask, none_m_mu_preds, f_mvv_ops, )
>+DEF_RVV_FUNCTION (vmfgt, return_mask, none_m_mu_preds, f_mvf_ops, )
>+DEF_RVV_FUNCTION (vmfge, return_mask, none_m_mu_preds, f_mvv_ops, )
>+DEF_RVV_FUNCTION (vmfge, return_mask, none_m_mu_preds, f_mvf_ops, )
>
> // 13.14. Vector Floating-Point Classify Instruction
>-DEF_RVV_FUNCTION (vfclass, alu, full_preds, f_to_u_v_ops)
>+DEF_RVV_FUNCTION (vfclass, alu, full_preds, f_to_u_v_ops, )
>
> // 13.15. Vector Floating-Point Merge Instruction
>-DEF_RVV_FUNCTION (vfmerge, no_mask_policy, none_tu_preds, f_vvfm_ops)
>+DEF_RVV_FUNCTION (vfmerge, no_mask_policy, none_tu_preds, f_vvfm_ops, )
>
> // 13.16. Vector Floating-Point Move Instruction
>-DEF_RVV_FUNCTION (vfmv_v, move, none_tu_preds, f_f_ops)
>+DEF_RVV_FUNCTION (vfmv_v, move, none_tu_preds, f_f_ops, )
>
> // 13.17. Single-Width Floating-Point/Integer Type-Convert Instructions
>-DEF_RVV_FUNCTION (vfcvt_x, alu, full_preds, f_to_i_f_v_ops)
>-DEF_RVV_FUNCTION (vfcvt_xu, alu, full_preds, f_to_u_f_v_ops)
>-DEF_RVV_FUNCTION (vfcvt_rtz_x, alu, full_preds, f_to_i_f_v_ops)
>-DEF_RVV_FUNCTION (vfcvt_rtz_xu, alu, full_preds, f_to_u_f_v_ops)
>-DEF_RVV_FUNCTION (vfcvt_f, alu, full_preds, i_to_f_x_v_ops)
>-DEF_RVV_FUNCTION (vfcvt_f, alu, full_preds, u_to_f_xu_v_ops)
>-
>-DEF_RVV_FUNCTION (vfcvt_x_frm, alu_frm, full_preds, f_to_i_f_v_ops)
>-DEF_RVV_FUNCTION (vfcvt_xu_frm, alu_frm, full_preds, f_to_u_f_v_ops)
>-DEF_RVV_FUNCTION (vfcvt_f_frm, alu_frm, full_preds, i_to_f_x_v_ops)
>-DEF_RVV_FUNCTION (vfcvt_f_frm, alu_frm, full_preds, u_to_f_xu_v_ops)
>+DEF_RVV_FUNCTION (vfcvt_x, alu, full_preds, f_to_i_f_v_ops, )
>+DEF_RVV_FUNCTION (vfcvt_xu, alu, full_preds, f_to_u_f_v_ops, )
>+DEF_RVV_FUNCTION (vfcvt_rtz_x, alu, full_preds, f_to_i_f_v_ops, )
>+DEF_RVV_FUNCTION (vfcvt_rtz_xu, alu, full_preds, f_to_u_f_v_ops, )
>+DEF_RVV_FUNCTION (vfcvt_f, alu, full_preds, i_to_f_x_v_ops, )
>+DEF_RVV_FUNCTION (vfcvt_f, alu, full_preds, u_to_f_xu_v_ops, )
>+
>+DEF_RVV_FUNCTION (vfcvt_x_frm, alu_frm, full_preds, f_to_i_f_v_ops, )
>+DEF_RVV_FUNCTION (vfcvt_xu_frm, alu_frm, full_preds, f_to_u_f_v_ops, )
>+DEF_RVV_FUNCTION (vfcvt_f_frm, alu_frm, full_preds, i_to_f_x_v_ops, )
>+DEF_RVV_FUNCTION (vfcvt_f_frm, alu_frm, full_preds, u_to_f_xu_v_ops, )
>
> // 13.18. Widening Floating-Point/Integer Type-Convert Instructions
>-DEF_RVV_FUNCTION (vfwcvt_x, alu, full_preds, f_to_wi_f_v_ops)
>-DEF_RVV_FUNCTION (vfwcvt_xu, alu, full_preds, f_to_wu_f_v_ops)
>-DEF_RVV_FUNCTION (vfwcvt_rtz_x, alu, full_preds, f_to_wi_f_v_ops)
>-DEF_RVV_FUNCTION (vfwcvt_rtz_xu, alu, full_preds, f_to_wu_f_v_ops)
>-DEF_RVV_FUNCTION (vfwcvt_f, alu, full_preds, i_to_wf_x_v_ops)
>-DEF_RVV_FUNCTION (vfwcvt_f, alu, full_preds, u_to_wf_xu_v_ops)
>-DEF_RVV_FUNCTION (vfwcvt_f, alu, full_preds, f_to_wf_f_v_ops)
>+DEF_RVV_FUNCTION (vfwcvt_x, alu, full_preds, f_to_wi_f_v_ops, )
>+DEF_RVV_FUNCTION (vfwcvt_xu, alu, full_preds, f_to_wu_f_v_ops, )
>+DEF_RVV_FUNCTION (vfwcvt_rtz_x, alu, full_preds, f_to_wi_f_v_ops, )
>+DEF_RVV_FUNCTION (vfwcvt_rtz_xu, alu, full_preds, f_to_wu_f_v_ops, )
>+DEF_RVV_FUNCTION (vfwcvt_f, alu, full_preds, i_to_wf_x_v_ops, )
>+DEF_RVV_FUNCTION (vfwcvt_f, alu, full_preds, u_to_wf_xu_v_ops, )
>+DEF_RVV_FUNCTION (vfwcvt_f, alu, full_preds, f_to_wf_f_v_ops, )
>
>-DEF_RVV_FUNCTION (vfwcvt_x_frm, alu_frm, full_preds, f_to_wi_f_v_ops)
>-DEF_RVV_FUNCTION (vfwcvt_xu_frm, alu_frm, full_preds, f_to_wu_f_v_ops)
>+DEF_RVV_FUNCTION (vfwcvt_x_frm, alu_frm, full_preds, f_to_wi_f_v_ops, )
>+DEF_RVV_FUNCTION (vfwcvt_xu_frm, alu_frm, full_preds, f_to_wu_f_v_ops, )
>
> // 13.19. Narrowing Floating-Point/Integer Type-Convert Instructions
>-DEF_RVV_FUNCTION (vfncvt_x, narrow_alu, full_preds, f_to_ni_f_w_ops)
>-DEF_RVV_FUNCTION (vfncvt_xu, narrow_alu, full_preds, f_to_nu_f_w_ops)
>-DEF_RVV_FUNCTION (vfncvt_rtz_x, narrow_alu, full_preds, f_to_ni_f_w_ops)
>-DEF_RVV_FUNCTION (vfncvt_rtz_xu, narrow_alu, full_preds, f_to_nu_f_w_ops)
>-DEF_RVV_FUNCTION (vfncvt_f, narrow_alu, full_preds, i_to_nf_x_w_ops)
>-DEF_RVV_FUNCTION (vfncvt_f, narrow_alu, full_preds, u_to_nf_xu_w_ops)
>-DEF_RVV_FUNCTION (vfncvt_f, narrow_alu, full_preds, f_to_nf_f_w_ops)
>-DEF_RVV_FUNCTION (vfncvt_rod_f, narrow_alu, full_preds, f_to_nf_f_w_ops)
>-
>-DEF_RVV_FUNCTION (vfncvt_x_frm, narrow_alu_frm, full_preds, f_to_ni_f_w_ops)
>-DEF_RVV_FUNCTION (vfncvt_xu_frm, narrow_alu_frm, full_preds, f_to_nu_f_w_ops)
>-DEF_RVV_FUNCTION (vfncvt_f_frm, narrow_alu_frm, full_preds, i_to_nf_x_w_ops)
>-DEF_RVV_FUNCTION (vfncvt_f_frm, narrow_alu_frm, full_preds, u_to_nf_xu_w_ops)
>-DEF_RVV_FUNCTION (vfncvt_f_frm, narrow_alu_frm, full_preds, f_to_nf_f_w_ops)
>+DEF_RVV_FUNCTION (vfncvt_x, narrow_alu, full_preds, f_to_ni_f_w_ops, )
>+DEF_RVV_FUNCTION (vfncvt_xu, narrow_alu, full_preds, f_to_nu_f_w_ops, )
>+DEF_RVV_FUNCTION (vfncvt_rtz_x, narrow_alu, full_preds, f_to_ni_f_w_ops, )
>+DEF_RVV_FUNCTION (vfncvt_rtz_xu, narrow_alu, full_preds, f_to_nu_f_w_ops, )
>+DEF_RVV_FUNCTION (vfncvt_f, narrow_alu, full_preds, i_to_nf_x_w_ops, )
>+DEF_RVV_FUNCTION (vfncvt_f, narrow_alu, full_preds, u_to_nf_xu_w_ops, )
>+DEF_RVV_FUNCTION (vfncvt_f, narrow_alu, full_preds, f_to_nf_f_w_ops, )
>+DEF_RVV_FUNCTION (vfncvt_rod_f, narrow_alu, full_preds, f_to_nf_f_w_ops, )
>+
>+DEF_RVV_FUNCTION (vfncvt_x_frm, narrow_alu_frm, full_preds, f_to_ni_f_w_ops, )
>+DEF_RVV_FUNCTION (vfncvt_xu_frm, narrow_alu_frm, full_preds, f_to_nu_f_w_ops,
>)
>+DEF_RVV_FUNCTION (vfncvt_f_frm, narrow_alu_frm, full_preds, i_to_nf_x_w_ops, )
>+DEF_RVV_FUNCTION (vfncvt_f_frm, narrow_alu_frm, full_preds, u_to_nf_xu_w_ops,
>)
>+DEF_RVV_FUNCTION (vfncvt_f_frm, narrow_alu_frm, full_preds, f_to_nf_f_w_ops, )
>
> /* 14. Vector Reduction Operations. */
>
> // 14.1. Vector Single-Width Integer Reduction Instructions
>-DEF_RVV_FUNCTION (vredsum, reduc_alu, no_mu_preds, iu_vs_ops)
>-DEF_RVV_FUNCTION (vredmaxu, reduc_alu, no_mu_preds, iu_vs_ops)
>-DEF_RVV_FUNCTION (vredmax, reduc_alu, no_mu_preds, iu_vs_ops)
>-DEF_RVV_FUNCTION (vredminu, reduc_alu, no_mu_preds, iu_vs_ops)
>-DEF_RVV_FUNCTION (vredmin, reduc_alu, no_mu_preds, iu_vs_ops)
>-DEF_RVV_FUNCTION (vredand, reduc_alu, no_mu_preds, iu_vs_ops)
>-DEF_RVV_FUNCTION (vredor, reduc_alu, no_mu_preds, iu_vs_ops)
>-DEF_RVV_FUNCTION (vredxor, reduc_alu, no_mu_preds, iu_vs_ops)
>+DEF_RVV_FUNCTION (vredsum, reduc_alu, no_mu_preds, iu_vs_ops, )
>+DEF_RVV_FUNCTION (vredmaxu, reduc_alu, no_mu_preds, iu_vs_ops, )
>+DEF_RVV_FUNCTION (vredmax, reduc_alu, no_mu_preds, iu_vs_ops, )
>+DEF_RVV_FUNCTION (vredminu, reduc_alu, no_mu_preds, iu_vs_ops, )
>+DEF_RVV_FUNCTION (vredmin, reduc_alu, no_mu_preds, iu_vs_ops, )
>+DEF_RVV_FUNCTION (vredand, reduc_alu, no_mu_preds, iu_vs_ops, )
>+DEF_RVV_FUNCTION (vredor, reduc_alu, no_mu_preds, iu_vs_ops, )
>+DEF_RVV_FUNCTION (vredxor, reduc_alu, no_mu_preds, iu_vs_ops, )
>
> // 14.2. Vector Widening Integer Reduction Instructions
>-DEF_RVV_FUNCTION (vwredsum, reduc_alu, no_mu_preds, wi_vs_ops)
>-DEF_RVV_FUNCTION (vwredsumu, reduc_alu, no_mu_preds, wu_vs_ops)
>+DEF_RVV_FUNCTION (vwredsum, reduc_alu, no_mu_preds, wi_vs_ops, )
>+DEF_RVV_FUNCTION (vwredsumu, reduc_alu, no_mu_preds, wu_vs_ops, )
>
> // 14.3. Vector Single-Width Floating-Point Reduction Instructions
>-DEF_RVV_FUNCTION (vfredusum, reduc_alu, no_mu_preds, f_vs_ops)
>-DEF_RVV_FUNCTION (vfredosum, reduc_alu, no_mu_preds, f_vs_ops)
>-DEF_RVV_FUNCTION (vfredmax, reduc_alu, no_mu_preds, f_vs_ops)
>-DEF_RVV_FUNCTION (vfredmin, reduc_alu, no_mu_preds, f_vs_ops)
>+DEF_RVV_FUNCTION (vfredusum, reduc_alu, no_mu_preds, f_vs_ops, )
>+DEF_RVV_FUNCTION (vfredosum, reduc_alu, no_mu_preds, f_vs_ops, )
>+DEF_RVV_FUNCTION (vfredmax, reduc_alu, no_mu_preds, f_vs_ops, )
>+DEF_RVV_FUNCTION (vfredmin, reduc_alu, no_mu_preds, f_vs_ops, )
>
>-DEF_RVV_FUNCTION (vfredusum_frm, reduc_alu_frm, no_mu_preds, f_vs_ops)
>-DEF_RVV_FUNCTION (vfredosum_frm, reduc_alu_frm, no_mu_preds, f_vs_ops)
>+DEF_RVV_FUNCTION (vfredusum_frm, reduc_alu_frm, no_mu_preds, f_vs_ops, )
>+DEF_RVV_FUNCTION (vfredosum_frm, reduc_alu_frm, no_mu_preds, f_vs_ops, )
>
> // 14.4. Vector Widening Floating-Point Reduction Instructions
>-DEF_RVV_FUNCTION (vfwredosum, reduc_alu, no_mu_preds, wf_vs_ops)
>-DEF_RVV_FUNCTION (vfwredusum, reduc_alu, no_mu_preds, wf_vs_ops)
>+DEF_RVV_FUNCTION (vfwredosum, reduc_alu, no_mu_preds, wf_vs_ops, )
>+DEF_RVV_FUNCTION (vfwredusum, reduc_alu, no_mu_preds, wf_vs_ops, )
>
>-DEF_RVV_FUNCTION (vfwredosum_frm, reduc_alu_frm, no_mu_preds, wf_vs_ops)
>-DEF_RVV_FUNCTION (vfwredusum_frm, reduc_alu_frm, no_mu_preds, wf_vs_ops)
>+DEF_RVV_FUNCTION (vfwredosum_frm, reduc_alu_frm, no_mu_preds, wf_vs_ops, )
>+DEF_RVV_FUNCTION (vfwredusum_frm, reduc_alu_frm, no_mu_preds, wf_vs_ops, )
>
> /* 15. Vector Mask Instructions. */
>
> // 15.1. Vector Mask-Register Logical Instructions
>-DEF_RVV_FUNCTION (vmand, mask_alu, none_preds, b_mmm_ops)
>-DEF_RVV_FUNCTION (vmnand, mask_alu, none_preds, b_mmm_ops)
>-DEF_RVV_FUNCTION (vmandn, mask_alu, none_preds, b_mmm_ops)
>-DEF_RVV_FUNCTION (vmxor, mask_alu, none_preds, b_mmm_ops)
>-DEF_RVV_FUNCTION (vmor, mask_alu, none_preds, b_mmm_ops)
>-DEF_RVV_FUNCTION (vmnor, mask_alu, none_preds, b_mmm_ops)
>-DEF_RVV_FUNCTION (vmorn, mask_alu, none_preds, b_mmm_ops)
>-DEF_RVV_FUNCTION (vmxnor, mask_alu, none_preds, b_mmm_ops)
>-DEF_RVV_FUNCTION (vmmv, mask_alu, none_preds, b_mm_ops)
>-DEF_RVV_FUNCTION (vmclr, mask_alu, none_preds, b_m_ops)
>-DEF_RVV_FUNCTION (vmset, mask_alu, none_preds, b_m_ops)
>-DEF_RVV_FUNCTION (vmnot, mask_alu, none_preds, b_mm_ops)
>+DEF_RVV_FUNCTION (vmand, mask_alu, none_preds, b_mmm_ops, )
>+DEF_RVV_FUNCTION (vmnand, mask_alu, none_preds, b_mmm_ops, )
>+DEF_RVV_FUNCTION (vmandn, mask_alu, none_preds, b_mmm_ops, )
>+DEF_RVV_FUNCTION (vmxor, mask_alu, none_preds, b_mmm_ops, )
>+DEF_RVV_FUNCTION (vmor, mask_alu, none_preds, b_mmm_ops, )
>+DEF_RVV_FUNCTION (vmnor, mask_alu, none_preds, b_mmm_ops, )
>+DEF_RVV_FUNCTION (vmorn, mask_alu, none_preds, b_mmm_ops, )
>+DEF_RVV_FUNCTION (vmxnor, mask_alu, none_preds, b_mmm_ops, )
>+DEF_RVV_FUNCTION (vmmv, mask_alu, none_preds, b_mm_ops, )
>+DEF_RVV_FUNCTION (vmclr, mask_alu, none_preds, b_m_ops, )
>+DEF_RVV_FUNCTION (vmset, mask_alu, none_preds, b_m_ops, )
>+DEF_RVV_FUNCTION (vmnot, mask_alu, none_preds, b_mm_ops, )
> // 15.2. Vector count population in mask vcpop.m
>-DEF_RVV_FUNCTION (vcpop, mask_alu, none_m_preds, b_ulong_m_ops)
>+DEF_RVV_FUNCTION (vcpop, mask_alu, none_m_preds, b_ulong_m_ops, )
> // 15.3. vfirst find-first-set mask bit
>-DEF_RVV_FUNCTION (vfirst, mask_alu, none_m_preds, b_long_m_ops)
>+DEF_RVV_FUNCTION (vfirst, mask_alu, none_m_preds, b_long_m_ops, )
> // 15.4. vmsbf.m set-before-first mask bit
>-DEF_RVV_FUNCTION (vmsbf, mask_alu, none_m_mu_preds, b_mm_ops)
>+DEF_RVV_FUNCTION (vmsbf, mask_alu, none_m_mu_preds, b_mm_ops, )
> // 15.5. vmsif.m set-including-first mask bit
>-DEF_RVV_FUNCTION (vmsif, mask_alu, none_m_mu_preds, b_mm_ops)
>+DEF_RVV_FUNCTION (vmsif, mask_alu, none_m_mu_preds, b_mm_ops, )
> // 15.6. vmsof.m set-only-first mask bit
>-DEF_RVV_FUNCTION (vmsof, mask_alu, none_m_mu_preds, b_mm_ops)
>+DEF_RVV_FUNCTION (vmsof, mask_alu, none_m_mu_preds, b_mm_ops, )
> // 15.8. Vector Iota Instruction
>-DEF_RVV_FUNCTION (viota, mask_alu, full_preds, u_vm_ops)
>+DEF_RVV_FUNCTION (viota, mask_alu, full_preds, u_vm_ops, )
> // 15.9. Vector Element Index Instruction
>-DEF_RVV_FUNCTION (vid, alu, full_preds, u_v_ops)
>+DEF_RVV_FUNCTION (vid, alu, full_preds, u_v_ops, )
>
> /* 16. Vector Permutation Instructions. */
>
> // 16.1. Integer Scalar Move Instructions
>-DEF_RVV_FUNCTION (vmv_x, scalar_move, none_preds, iu_x_s_ops)
>-DEF_RVV_FUNCTION (vmv_s, move, none_tu_preds, iu_s_x_ops)
>+DEF_RVV_FUNCTION (vmv_x, scalar_move, none_preds, iu_x_s_ops, )
>+DEF_RVV_FUNCTION (vmv_s, move, none_tu_preds, iu_s_x_ops, )
>
> // 16.2. Floating-Point Scalar Move Instructions
>-DEF_RVV_FUNCTION (vfmv_f, scalar_move, none_preds, f_f_s_ops)
>-DEF_RVV_FUNCTION (vfmv_s, move, none_tu_preds, f_s_f_ops)
>+DEF_RVV_FUNCTION (vfmv_f, scalar_move, none_preds, f_f_s_ops, )
>+DEF_RVV_FUNCTION (vfmv_s, move, none_tu_preds, f_s_f_ops, )
>
> // 16.3. Vector Slide Instructions
>-DEF_RVV_FUNCTION (vslideup, alu, full_preds, all_vvvx_ops)
>-DEF_RVV_FUNCTION (vslidedown, alu, full_preds, all_vvx_ops)
>-DEF_RVV_FUNCTION (vslide1up, alu, full_preds, iu_vvx_ops)
>-DEF_RVV_FUNCTION (vslide1down, alu, full_preds, iu_vvx_ops)
>-DEF_RVV_FUNCTION (vfslide1up, alu, full_preds, f_vvf_ops)
>-DEF_RVV_FUNCTION (vfslide1down, alu, full_preds, f_vvf_ops)
>+DEF_RVV_FUNCTION (vslideup, alu, full_preds, all_vvvx_ops, )
>+DEF_RVV_FUNCTION (vslidedown, alu, full_preds, all_vvx_ops, )
>+DEF_RVV_FUNCTION (vslide1up, alu, full_preds, iu_vvx_ops, )
>+DEF_RVV_FUNCTION (vslide1down, alu, full_preds, iu_vvx_ops, )
>+DEF_RVV_FUNCTION (vfslide1up, alu, full_preds, f_vvf_ops, )
>+DEF_RVV_FUNCTION (vfslide1down, alu, full_preds, f_vvf_ops, )
>
> // 16.4. Vector Register Gather Instructions
>-DEF_RVV_FUNCTION (vrgather, alu, full_preds, all_gather_vvv_ops)
>-DEF_RVV_FUNCTION (vrgather, alu, full_preds, all_gather_vvx_ops)
>-DEF_RVV_FUNCTION (vrgatherei16, alu, full_preds, all_gatherei16_vvv_ops)
>+DEF_RVV_FUNCTION (vrgather, alu, full_preds, all_gather_vvv_ops, )
>+DEF_RVV_FUNCTION (vrgather, alu, full_preds, all_gather_vvx_ops, )
>+DEF_RVV_FUNCTION (vrgatherei16, alu, full_preds, all_gatherei16_vvv_ops, )
>
> // 16.5. Vector Compress Instruction
>-DEF_RVV_FUNCTION (vcompress, alu, none_tu_preds, all_vvm_ops)
>+DEF_RVV_FUNCTION (vcompress, alu, none_tu_preds, all_vvm_ops, )
>
> /* Miscellaneous Vector Functions. */
>-DEF_RVV_FUNCTION (vundefined, vundefined, none_preds, all_none_void_ops)
>-DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, i_v_u_ops)
>-DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, u_v_i_ops)
>-DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, f_v_i_ops)
>-DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, f_v_u_ops)
>-DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, i_v_f_ops)
>-DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, u_v_f_ops)
>-DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, iu_v_eew8_interpret_ops)
>-DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, iu_v_eew16_interpret_ops)
>-DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, iu_v_eew32_interpret_ops)
>-DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, iu_v_eew64_interpret_ops)
>-DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, iu_v_bool1_interpret_ops)
>-DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, iu_v_bool2_interpret_ops)
>-DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, iu_v_bool4_interpret_ops)
>-DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, iu_v_bool8_interpret_ops)
>-DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, iu_v_bool16_interpret_ops)
>-DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, iu_v_bool32_interpret_ops)
>-DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, iu_v_bool64_interpret_ops)
>-DEF_RVV_FUNCTION (vreinterpret, misc, none_preds,
>b_v_signed_eew8_lmul1_interpret_ops)
>-DEF_RVV_FUNCTION (vreinterpret, misc, none_preds,
>b_v_signed_eew16_lmul1_interpret_ops)
>-DEF_RVV_FUNCTION (vreinterpret, misc, none_preds,
>b_v_signed_eew32_lmul1_interpret_ops)
>-DEF_RVV_FUNCTION (vreinterpret, misc, none_preds,
>b_v_signed_eew64_lmul1_interpret_ops)
>-DEF_RVV_FUNCTION (vreinterpret, misc, none_preds,
>b_v_unsigned_eew8_lmul1_interpret_ops)
>-DEF_RVV_FUNCTION (vreinterpret, misc, none_preds,
>b_v_unsigned_eew16_lmul1_interpret_ops)
>-DEF_RVV_FUNCTION (vreinterpret, misc, none_preds,
>b_v_unsigned_eew32_lmul1_interpret_ops)
>-DEF_RVV_FUNCTION (vreinterpret, misc, none_preds,
>b_v_unsigned_eew64_lmul1_interpret_ops)
>-DEF_RVV_FUNCTION (vlmul_ext, misc, none_preds, all_v_vlmul_ext_x2_ops)
>-DEF_RVV_FUNCTION (vlmul_ext, misc, none_preds, all_v_vlmul_ext_x4_ops)
>-DEF_RVV_FUNCTION (vlmul_ext, misc, none_preds, all_v_vlmul_ext_x8_ops)
>-DEF_RVV_FUNCTION (vlmul_ext, misc, none_preds, all_v_vlmul_ext_x16_ops)
>-DEF_RVV_FUNCTION (vlmul_ext, misc, none_preds, all_v_vlmul_ext_x32_ops)
>-DEF_RVV_FUNCTION (vlmul_ext, misc, none_preds, all_v_vlmul_ext_x64_ops)
>-DEF_RVV_FUNCTION (vlmul_trunc, misc, none_preds, all_v_vlmul_trunc_x2_ops)
>-DEF_RVV_FUNCTION (vlmul_trunc, misc, none_preds, all_v_vlmul_trunc_x4_ops)
>-DEF_RVV_FUNCTION (vlmul_trunc, misc, none_preds, all_v_vlmul_trunc_x8_ops)
>-DEF_RVV_FUNCTION (vlmul_trunc, misc, none_preds, all_v_vlmul_trunc_x16_ops)
>-DEF_RVV_FUNCTION (vlmul_trunc, misc, none_preds, all_v_vlmul_trunc_x32_ops)
>-DEF_RVV_FUNCTION (vlmul_trunc, misc, none_preds, all_v_vlmul_trunc_x64_ops)
>-DEF_RVV_FUNCTION (vset, vset, none_preds, all_v_vset_lmul1_x2_ops)
>-DEF_RVV_FUNCTION (vset, vset, none_preds, all_v_vset_lmul1_x4_ops)
>-DEF_RVV_FUNCTION (vset, vset, none_preds, all_v_vset_lmul1_x8_ops)
>-DEF_RVV_FUNCTION (vset, vset, none_preds, all_v_vset_lmul2_x2_ops)
>-DEF_RVV_FUNCTION (vset, vset, none_preds, all_v_vset_lmul2_x4_ops)
>-DEF_RVV_FUNCTION (vset, vset, none_preds, all_v_vset_lmul4_x2_ops)
>-DEF_RVV_FUNCTION (vget, vget, none_preds, all_v_vget_lmul1_x2_ops)
>-DEF_RVV_FUNCTION (vget, vget, none_preds, all_v_vget_lmul1_x4_ops)
>-DEF_RVV_FUNCTION (vget, vget, none_preds, all_v_vget_lmul1_x8_ops)
>-DEF_RVV_FUNCTION (vget, vget, none_preds, all_v_vget_lmul2_x2_ops)
>-DEF_RVV_FUNCTION (vget, vget, none_preds, all_v_vget_lmul2_x4_ops)
>-DEF_RVV_FUNCTION (vget, vget, none_preds, all_v_vget_lmul4_x2_ops)
>-DEF_RVV_FUNCTION (vcreate, vcreate, none_preds, all_v_vcreate_lmul1_x2_ops)
>-DEF_RVV_FUNCTION (vcreate, vcreate, none_preds, all_v_vcreate_lmul1_x4_ops)
>-DEF_RVV_FUNCTION (vcreate, vcreate, none_preds, all_v_vcreate_lmul1_x8_ops)
>-DEF_RVV_FUNCTION (vcreate, vcreate, none_preds, all_v_vcreate_lmul2_x2_ops)
>-DEF_RVV_FUNCTION (vcreate, vcreate, none_preds, all_v_vcreate_lmul2_x4_ops)
>-DEF_RVV_FUNCTION (vcreate, vcreate, none_preds, all_v_vcreate_lmul4_x2_ops)
>+DEF_RVV_FUNCTION (vundefined, vundefined, none_preds, all_none_void_ops, )
>+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, i_v_u_ops, )
>+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, u_v_i_ops, )
>+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, f_v_i_ops, )
>+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, f_v_u_ops, )
>+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, i_v_f_ops, )
>+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, u_v_f_ops, )
>+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, iu_v_eew8_interpret_ops, )
>+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, iu_v_eew16_interpret_ops, )
>+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, iu_v_eew32_interpret_ops, )
>+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, iu_v_eew64_interpret_ops, )
>+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, iu_v_bool1_interpret_ops, )
>+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, iu_v_bool2_interpret_ops, )
>+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, iu_v_bool4_interpret_ops, )
>+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, iu_v_bool8_interpret_ops, )
>+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, iu_v_bool16_interpret_ops, )
>+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, iu_v_bool32_interpret_ops, )
>+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, iu_v_bool64_interpret_ops, )
>+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds,
>b_v_signed_eew8_lmul1_interpret_ops, )
>+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds,
>b_v_signed_eew16_lmul1_interpret_ops, )
>+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds,
>b_v_signed_eew32_lmul1_interpret_ops, )
>+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds,
>b_v_signed_eew64_lmul1_interpret_ops, )
>+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds,
>b_v_unsigned_eew8_lmul1_interpret_ops, )
>+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds,
>b_v_unsigned_eew16_lmul1_interpret_ops, )
>+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds,
>b_v_unsigned_eew32_lmul1_interpret_ops, )
>+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds,
>b_v_unsigned_eew64_lmul1_interpret_ops, )
>+DEF_RVV_FUNCTION (vlmul_ext, misc, none_preds, all_v_vlmul_ext_x2_ops, )
>+DEF_RVV_FUNCTION (vlmul_ext, misc, none_preds, all_v_vlmul_ext_x4_ops, )
>+DEF_RVV_FUNCTION (vlmul_ext, misc, none_preds, all_v_vlmul_ext_x8_ops, )
>+DEF_RVV_FUNCTION (vlmul_ext, misc, none_preds, all_v_vlmul_ext_x16_ops, )
>+DEF_RVV_FUNCTION (vlmul_ext, misc, none_preds, all_v_vlmul_ext_x32_ops, )
>+DEF_RVV_FUNCTION (vlmul_ext, misc, none_preds, all_v_vlmul_ext_x64_ops, )
>+DEF_RVV_FUNCTION (vlmul_trunc, misc, none_preds, all_v_vlmul_trunc_x2_ops, )
>+DEF_RVV_FUNCTION (vlmul_trunc, misc, none_preds, all_v_vlmul_trunc_x4_ops, )
>+DEF_RVV_FUNCTION (vlmul_trunc, misc, none_preds, all_v_vlmul_trunc_x8_ops, )
>+DEF_RVV_FUNCTION (vlmul_trunc, misc, none_preds, all_v_vlmul_trunc_x16_ops, )
>+DEF_RVV_FUNCTION (vlmul_trunc, misc, none_preds, all_v_vlmul_trunc_x32_ops, )
>+DEF_RVV_FUNCTION (vlmul_trunc, misc, none_preds, all_v_vlmul_trunc_x64_ops, )
>+DEF_RVV_FUNCTION (vset, vset, none_preds, all_v_vset_lmul1_x2_ops, )
>+DEF_RVV_FUNCTION (vset, vset, none_preds, all_v_vset_lmul1_x4_ops, )
>+DEF_RVV_FUNCTION (vset, vset, none_preds, all_v_vset_lmul1_x8_ops, )
>+DEF_RVV_FUNCTION (vset, vset, none_preds, all_v_vset_lmul2_x2_ops, )
>+DEF_RVV_FUNCTION (vset, vset, none_preds, all_v_vset_lmul2_x4_ops, )
>+DEF_RVV_FUNCTION (vset, vset, none_preds, all_v_vset_lmul4_x2_ops, )
>+DEF_RVV_FUNCTION (vget, vget, none_preds, all_v_vget_lmul1_x2_ops, )
>+DEF_RVV_FUNCTION (vget, vget, none_preds, all_v_vget_lmul1_x4_ops, )
>+DEF_RVV_FUNCTION (vget, vget, none_preds, all_v_vget_lmul1_x8_ops, )
>+DEF_RVV_FUNCTION (vget, vget, none_preds, all_v_vget_lmul2_x2_ops, )
>+DEF_RVV_FUNCTION (vget, vget, none_preds, all_v_vget_lmul2_x4_ops, )
>+DEF_RVV_FUNCTION (vget, vget, none_preds, all_v_vget_lmul4_x2_ops, )
>+DEF_RVV_FUNCTION (vcreate, vcreate, none_preds, all_v_vcreate_lmul1_x2_ops, )
>+DEF_RVV_FUNCTION (vcreate, vcreate, none_preds, all_v_vcreate_lmul1_x4_ops, )
>+DEF_RVV_FUNCTION (vcreate, vcreate, none_preds, all_v_vcreate_lmul1_x8_ops, )
>+DEF_RVV_FUNCTION (vcreate, vcreate, none_preds, all_v_vcreate_lmul2_x2_ops, )
>+DEF_RVV_FUNCTION (vcreate, vcreate, none_preds, all_v_vcreate_lmul2_x4_ops, )
>+DEF_RVV_FUNCTION (vcreate, vcreate, none_preds, all_v_vcreate_lmul4_x2_ops, )
>
> // Tuple types
>-DEF_RVV_FUNCTION (vset, vset, none_preds, all_v_vset_tuple_ops)
>-DEF_RVV_FUNCTION (vget, vget, none_preds, all_v_vget_tuple_ops)
>-DEF_RVV_FUNCTION (vcreate, vcreate, none_preds, all_v_vcreate_tuple_ops)
>-DEF_RVV_FUNCTION (vundefined, vundefined, none_preds, all_none_void_tuple_ops)
>-DEF_RVV_FUNCTION (vlseg, seg_loadstore, full_preds,
>tuple_v_scalar_const_ptr_ops)
>-DEF_RVV_FUNCTION (vsseg, seg_loadstore, none_m_preds, tuple_v_scalar_ptr_ops)
>-DEF_RVV_FUNCTION (vlsseg, seg_loadstore, full_preds,
>tuple_v_scalar_const_ptr_ptrdiff_ops)
>-DEF_RVV_FUNCTION (vssseg, seg_loadstore, none_m_preds,
>tuple_v_scalar_ptr_ptrdiff_ops)
>-DEF_RVV_FUNCTION (vluxseg, seg_indexed_loadstore, full_preds,
>tuple_v_scalar_const_ptr_eew8_index_ops)
>-DEF_RVV_FUNCTION (vluxseg, seg_indexed_loadstore, full_preds,
>tuple_v_scalar_const_ptr_eew16_index_ops)
>-DEF_RVV_FUNCTION (vluxseg, seg_indexed_loadstore, full_preds,
>tuple_v_scalar_const_ptr_eew32_index_ops)
>-DEF_RVV_FUNCTION (vluxseg, seg_indexed_loadstore, full_preds,
>tuple_v_scalar_const_ptr_eew64_index_ops)
>-DEF_RVV_FUNCTION (vloxseg, seg_indexed_loadstore, full_preds,
>tuple_v_scalar_const_ptr_eew8_index_ops)
>-DEF_RVV_FUNCTION (vloxseg, seg_indexed_loadstore, full_preds,
>tuple_v_scalar_const_ptr_eew16_index_ops)
>-DEF_RVV_FUNCTION (vloxseg, seg_indexed_loadstore, full_preds,
>tuple_v_scalar_const_ptr_eew32_index_ops)
>-DEF_RVV_FUNCTION (vloxseg, seg_indexed_loadstore, full_preds,
>tuple_v_scalar_const_ptr_eew64_index_ops)
>-DEF_RVV_FUNCTION (vsuxseg, seg_indexed_loadstore, none_m_preds,
>tuple_v_scalar_ptr_eew8_index_ops)
>-DEF_RVV_FUNCTION (vsuxseg, seg_indexed_loadstore, none_m_preds,
>tuple_v_scalar_ptr_eew16_index_ops)
>-DEF_RVV_FUNCTION (vsuxseg, seg_indexed_loadstore, none_m_preds,
>tuple_v_scalar_ptr_eew32_index_ops)
>-DEF_RVV_FUNCTION (vsuxseg, seg_indexed_loadstore, none_m_preds,
>tuple_v_scalar_ptr_eew64_index_ops)
>-DEF_RVV_FUNCTION (vsoxseg, seg_indexed_loadstore, none_m_preds,
>tuple_v_scalar_ptr_eew8_index_ops)
>-DEF_RVV_FUNCTION (vsoxseg, seg_indexed_loadstore, none_m_preds,
>tuple_v_scalar_ptr_eew16_index_ops)
>-DEF_RVV_FUNCTION (vsoxseg, seg_indexed_loadstore, none_m_preds,
>tuple_v_scalar_ptr_eew32_index_ops)
>-DEF_RVV_FUNCTION (vsoxseg, seg_indexed_loadstore, none_m_preds,
>tuple_v_scalar_ptr_eew64_index_ops)
>-DEF_RVV_FUNCTION (vlsegff, seg_fault_load, full_preds,
>tuple_v_scalar_const_ptr_size_ptr_ops)
>+DEF_RVV_FUNCTION (vset, vset, none_preds, all_v_vset_tuple_ops, )
>+DEF_RVV_FUNCTION (vget, vget, none_preds, all_v_vget_tuple_ops, )
>+DEF_RVV_FUNCTION (vcreate, vcreate, none_preds, all_v_vcreate_tuple_ops, )
>+DEF_RVV_FUNCTION (vundefined, vundefined, none_preds,
>all_none_void_tuple_ops, )
>+DEF_RVV_FUNCTION (vlseg, seg_loadstore, full_preds,
>tuple_v_scalar_const_ptr_ops, )
>+DEF_RVV_FUNCTION (vsseg, seg_loadstore, none_m_preds, tuple_v_scalar_ptr_ops,
>)
>+DEF_RVV_FUNCTION (vlsseg, seg_loadstore, full_preds,
>tuple_v_scalar_const_ptr_ptrdiff_ops, )
>+DEF_RVV_FUNCTION (vssseg, seg_loadstore, none_m_preds,
>tuple_v_scalar_ptr_ptrdiff_ops, )
>+DEF_RVV_FUNCTION (vluxseg, seg_indexed_loadstore, full_preds,
>tuple_v_scalar_const_ptr_eew8_index_ops, )
>+DEF_RVV_FUNCTION (vluxseg, seg_indexed_loadstore, full_preds,
>tuple_v_scalar_const_ptr_eew16_index_ops, )
>+DEF_RVV_FUNCTION (vluxseg, seg_indexed_loadstore, full_preds,
>tuple_v_scalar_const_ptr_eew32_index_ops, )
>+DEF_RVV_FUNCTION (vluxseg, seg_indexed_loadstore, full_preds,
>tuple_v_scalar_const_ptr_eew64_index_ops, )
>+DEF_RVV_FUNCTION (vloxseg, seg_indexed_loadstore, full_preds,
>tuple_v_scalar_const_ptr_eew8_index_ops, )
>+DEF_RVV_FUNCTION (vloxseg, seg_indexed_loadstore, full_preds,
>tuple_v_scalar_const_ptr_eew16_index_ops, )
>+DEF_RVV_FUNCTION (vloxseg, seg_indexed_loadstore, full_preds,
>tuple_v_scalar_const_ptr_eew32_index_ops, )
>+DEF_RVV_FUNCTION (vloxseg, seg_indexed_loadstore, full_preds,
>tuple_v_scalar_const_ptr_eew64_index_ops, )
>+DEF_RVV_FUNCTION (vsuxseg, seg_indexed_loadstore, none_m_preds,
>tuple_v_scalar_ptr_eew8_index_ops, )
>+DEF_RVV_FUNCTION (vsuxseg, seg_indexed_loadstore, none_m_preds,
>tuple_v_scalar_ptr_eew16_index_ops, )
>+DEF_RVV_FUNCTION (vsuxseg, seg_indexed_loadstore, none_m_preds,
>tuple_v_scalar_ptr_eew32_index_ops, )
>+DEF_RVV_FUNCTION (vsuxseg, seg_indexed_loadstore, none_m_preds,
>tuple_v_scalar_ptr_eew64_index_ops, )
>+DEF_RVV_FUNCTION (vsoxseg, seg_indexed_loadstore, none_m_preds,
>tuple_v_scalar_ptr_eew8_index_ops, )
>+DEF_RVV_FUNCTION (vsoxseg, seg_indexed_loadstore, none_m_preds,
>tuple_v_scalar_ptr_eew16_index_ops, )
>+DEF_RVV_FUNCTION (vsoxseg, seg_indexed_loadstore, none_m_preds,
>tuple_v_scalar_ptr_eew32_index_ops, )
>+DEF_RVV_FUNCTION (vsoxseg, seg_indexed_loadstore, none_m_preds,
>tuple_v_scalar_ptr_eew64_index_ops, )
>+DEF_RVV_FUNCTION (vlsegff, seg_fault_load, full_preds,
>tuple_v_scalar_const_ptr_size_ptr_ops, )
>
> #undef DEF_RVV_FUNCTION
>diff --git a/gcc/config/riscv/riscv-vector-builtins.cc
>b/gcc/config/riscv/riscv-vector-builtins.cc
>index 6330a3a41c3..5a164943df9 100644
>--- a/gcc/config/riscv/riscv-vector-builtins.cc
>+++ b/gcc/config/riscv/riscv-vector-builtins.cc
>@@ -51,6 +51,7 @@
> #include "riscv-vector-builtins.h"
> #include "riscv-vector-builtins-shapes.h"
> #include "riscv-vector-builtins-bases.h"
>+#include "riscv-vector-builtins-avail.h"
>
> using namespace riscv_vector;
>
>@@ -2684,8 +2685,9 @@ static CONSTEXPR const function_type_info
>function_types[] = {
>
> /* A list of all RVV intrinsic functions. */
> static function_group_info function_groups[] = {
>-#define DEF_RVV_FUNCTION(NAME, SHAPE, PREDS, OPS_INFO)
> \
>- {#NAME, &bases::NAME, &shapes::SHAPE, PREDS, OPS_INFO},
>+#define DEF_RVV_FUNCTION(NAME, SHAPE, PREDS, OPS_INFO, ...)
> \
>+ {#NAME, &bases::NAME, &shapes::SHAPE, PREDS, OPS_INFO,\
>+ __VA_ARGS__},
> #include "riscv-vector-builtins-functions.def"
> };
>
>diff --git a/gcc/config/riscv/riscv-vector-builtins.h
>b/gcc/config/riscv/riscv-vector-builtins.h
>index cd8ccab1724..6c3e61074a2 100644
>--- a/gcc/config/riscv/riscv-vector-builtins.h
>+++ b/gcc/config/riscv/riscv-vector-builtins.h
>@@ -212,6 +212,14 @@ class function_shape;
> /* Static information about a set of functions. */
> struct function_group_info
> {
>+ constexpr function_group_info (const char *base_name,\
>+ const function_base *const *base,\
>+ const function_shape *const *shape,\
>+ const predication_type_index *preds,\
>+ const rvv_op_info ops_infos,\
>+ unsigned int (*avail)() = nullptr)
>+ : base_name (base_name), base (base), shape (shape), preds (preds),\
>+ ops_infos (ops_infos), avail (avail){};
> /* The base name, as a string. */
> const char *base_name;
>
>@@ -232,6 +240,8 @@ struct function_group_info
> on the index value. */
> const predication_type_index *preds;
> const rvv_op_info ops_infos;
>+ /* Whether the function is available. */
>+ unsigned int (*avail) (void);
> };
>
> class GTY ((user)) function_instance
>diff --git a/gcc/config/riscv/t-riscv b/gcc/config/riscv/t-riscv
>index 3b9686daa58..cacb1e8ddb4 100644
>--- a/gcc/config/riscv/t-riscv
>+++ b/gcc/config/riscv/t-riscv
>@@ -1,4 +1,5 @@
> RISCV_BUILTINS_H = $(srcdir)/config/riscv/riscv-vector-builtins.h \
>+ $(srcdir)/config/riscv/riscv-vector-builtins-avail.h \
> $(srcdir)/config/riscv/riscv-vector-builtins.def \
> $(srcdir)/config/riscv/riscv-vector-builtins-functions.def \
> riscv-vector-type-indexer.gen.def
>diff --git a/gcc/testsuite/g++.target/riscv/rvv/rvv.exp
>b/gcc/testsuite/g++.target/riscv/rvv/rvv.exp
>index 5b01e4e05d2..24c72718543 100644
>--- a/gcc/testsuite/g++.target/riscv/rvv/rvv.exp
>+++ b/gcc/testsuite/g++.target/riscv/rvv/rvv.exp
>@@ -41,7 +41,14 @@ dg-init
> set CFLAGS "-march=$gcc_march -mabi=$gcc_mabi -O3"
> dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/base/*.C]] \
> "" $CFLAGS
>-
>+dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/gnu-api-tests/*.\[cS\]]] \
>+ "" $CFLAGS
>+dg-runtest [lsort [glob -nocomplain
>$srcdir/$subdir/gnu-overloaded-tests/*.\[cS\]]] \
>+ "" $CFLAGS
>+dg-runtest [lsort [glob -nocomplain
>$srcdir/$subdir/policy/gnu-api-tests/*.\[cS\]]] \
>+ "" $CFLAGS
>+dg-runtest [lsort [glob -nocomplain
>$srcdir/$subdir/policy/gnu-overloaded-tests/*.\[cS\]]] \
>+ "" $CFLAGS
> dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/autovec/*.\[C\]]] \
> "" $CFLAGS
>
>diff --git a/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp
>b/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp
>index 1d5041b0c8c..592ad330fc8 100644
>--- a/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp
>+++ b/gcc/testsuite/gcc.target/riscv/rvv/rvv.exp
>@@ -37,6 +37,14 @@ dg-init
> set CFLAGS "$DEFAULT_CFLAGS -O3"
> dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/base/*.\[cS\]]] \
> "" $CFLAGS
>+dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/gnu-api-tests/*.\[cS\]]] \
>+ "" $CFLAGS
>+dg-runtest [lsort [glob -nocomplain
>$srcdir/$subdir/gnu-overloaded-tests/*.\[cS\]]] \
>+ "" $CFLAGS
>+dg-runtest [lsort [glob -nocomplain
>$srcdir/$subdir/policy/gnu-api-tests/*.\[cS\]]] \
>+ "" $CFLAGS
>+dg-runtest [lsort [glob -nocomplain
>$srcdir/$subdir/policy/gnu-overloaded-tests/*.\[cS\]]] \
>+ "" $CFLAGS
> gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/vsetvl/*.\[cS\]]] \
> "" $CFLAGS
> dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/autovec/*.\[cS\]]] \
>--
>2.17.1