public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH][v2] RISC-V: Add avail interface into function_group_info
@ 2023-12-08  2:44 Feng Wang
  2023-12-08  2:51 ` Feng Wang
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Feng Wang @ 2023-12-08  2:44 UTC (permalink / raw)
  To: gcc-patches; +Cc: kito.cheng, jeffreyalaw, juzhe.zhong, Feng Wang

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 (juzhe.zhong@rivai.ai), RiVAI Technologies Ltd.
+   Copyright (C, ) 2022-2023 Free Software Foundation, Inc.
+   Contributed by Juzhe Zhong (juzhe.zhong@rivai.ai, ), 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


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH][v2] RISC-V: Add avail interface into function_group_info
  2023-12-08  2:44 [PATCH][v2] RISC-V: Add avail interface into function_group_info Feng Wang
@ 2023-12-08  2:51 ` Feng Wang
  2023-12-08  2:56 ` juzhe.zhong
  2023-12-08  3:18 ` Kito Cheng
  2 siblings, 0 replies; 9+ messages in thread
From: Feng Wang @ 2023-12-08  2:51 UTC (permalink / raw)
  To: wangfeng, gcc-patches; +Cc: kito.cheng, Jeff Law, juzhe.zhong

2023-12-08 10:44 Feng Wang <wangfeng@eswincomputing.com> 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 (juzhe.zhong@rivai.ai), RiVAI Technologies Ltd.



>+   Copyright (C, ) 2022-2023 Free Software Foundation, Inc.



>+   Contributed by Juzhe Zhong (juzhe.zhong@rivai.ai, ), 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



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH][v2] RISC-V: Add avail interface into function_group_info
  2023-12-08  2:44 [PATCH][v2] RISC-V: Add avail interface into function_group_info Feng Wang
  2023-12-08  2:51 ` Feng Wang
@ 2023-12-08  2:56 ` juzhe.zhong
  2023-12-08  3:06   ` Feng Wang
  2023-12-08  3:18 ` Kito Cheng
  2 siblings, 1 reply; 9+ messages in thread
From: juzhe.zhong @ 2023-12-08  2:56 UTC (permalink / raw)
  To: wangfeng, gcc-patches; +Cc: kito.cheng, jeffreyalaw, wangfeng

[-- Attachment #1: Type: text/plain, Size: 81651 bytes --]

Hi, Thanks for the patience.

Some nit comments below:
-   Copyright (C) 2022-2023 Free Software Foundation, Inc.
-   Contributed by Juzhe Zhong (juzhe.zhong@rivai.ai), RiVAI Technologies Ltd.
+   Copyright (C, ) 2022-2023 Free Software Foundation, Inc.
+   Contributed by Juzhe Zhong (juzhe.zhong@rivai.ai, ), RiVAI Technologies Ltd.
Typo ?



+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

Add comment here:

RVV intrinsics API tests are not staying on the GCC testsuite statically, instead, they are generated dynamically
by test generator in https://github.com/riscv-non-isa/rvv-intrinsic-doc.  Folder name here which is hold those API tests
should be consistent with the test generator.


Otherwise, LGTM on myside.

But I'd like to see whether kito has more comments.



juzhe.zhong@rivai.ai
 
From: Feng Wang
Date: 2023-12-08 10:44
To: gcc-patches
CC: kito.cheng; jeffreyalaw; juzhe.zhong; Feng Wang
Subject: [PATCH][v2] RISC-V: Add avail interface into function_group_info
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 (juzhe.zhong@rivai.ai), RiVAI Technologies Ltd.
+   Copyright (C, ) 2022-2023 Free Software Foundation, Inc.
+   Contributed by Juzhe Zhong (juzhe.zhong@rivai.ai, ), 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
 
 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Re: [PATCH][v2] RISC-V: Add avail interface into function_group_info
  2023-12-08  2:56 ` juzhe.zhong
@ 2023-12-08  3:06   ` Feng Wang
  2023-12-08  3:14     ` juzhe.zhong
  0 siblings, 1 reply; 9+ messages in thread
From: Feng Wang @ 2023-12-08  3:06 UTC (permalink / raw)
  To: juzhe.zhong, gcc-patches; +Cc: kito.cheng, Jeff Law

[-- Attachment #1: Type: text/plain, Size: 81994 bytes --]

Oh ,sorry! The typo caused by replacement. 
And I should not modify the rvv.exp, the uploading is unnecessary,right?
Thanks.


Feng Wang
 
From: juzhe.zhong@rivai.ai
Date: 2023-12-08 10:56
To: wangfeng; gcc-patches
CC: kito.cheng; jeffreyalaw; wangfeng
Subject: Re: [PATCH][v2] RISC-V: Add avail interface into function_group_info
Hi, Thanks for the patience.

Some nit comments below:
-   Copyright (C) 2022-2023 Free Software Foundation, Inc.
-   Contributed by Juzhe Zhong (juzhe.zhong@rivai.ai), RiVAI Technologies Ltd.
+   Copyright (C, ) 2022-2023 Free Software Foundation, Inc.
+   Contributed by Juzhe Zhong (juzhe.zhong@rivai.ai, ), RiVAI Technologies Ltd.
Typo ?



+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

Add comment here:

RVV intrinsics API tests are not staying on the GCC testsuite statically, instead, they are generated dynamically
by test generator in https://github.com/riscv-non-isa/rvv-intrinsic-doc.  Folder name here which is hold those API tests
should be consistent with the test generator.


Otherwise, LGTM on myside.

But I'd like to see whether kito has more comments.



juzhe.zhong@rivai.ai
 
From: Feng Wang
Date: 2023-12-08 10:44
To: gcc-patches
CC: kito.cheng; jeffreyalaw; juzhe.zhong; Feng Wang
Subject: [PATCH][v2] RISC-V: Add avail interface into function_group_info
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 (juzhe.zhong@rivai.ai), RiVAI Technologies Ltd.
+   Copyright (C, ) 2022-2023 Free Software Foundation, Inc.
+   Contributed by Juzhe Zhong (juzhe.zhong@rivai.ai, ), 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
 
 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Re: [PATCH][v2] RISC-V: Add avail interface into function_group_info
  2023-12-08  3:06   ` Feng Wang
@ 2023-12-08  3:14     ` juzhe.zhong
  0 siblings, 0 replies; 9+ messages in thread
From: juzhe.zhong @ 2023-12-08  3:14 UTC (permalink / raw)
  To: wangfeng, gcc-patches; +Cc: kito.cheng, jeffreyalaw

[-- Attachment #1: Type: text/plain, Size: 82575 bytes --]

Keep rvv.exp unchanged is ok to me.

You can send V3 with those 2 fixes to see whether kito has more comments.

Btw, do you have write access after approval ?

If not, I think it's reasonable you request it since you are going to do big contributions (vector cryto support), 

@kito and @Jeff could you recommand WangFeng for write access ?

Thanks.



juzhe.zhong@rivai.ai
 
From: Feng Wang
Date: 2023-12-08 11:06
To: juzhe.zhong@rivai.ai; gcc-patches
CC: kito.cheng; Jeff Law
Subject: Re: Re: [PATCH][v2] RISC-V: Add avail interface into function_group_info
Oh ,sorry! The typo caused by replacement. 
And I should not modify the rvv.exp, the uploading is unnecessary,right?
Thanks.


Feng Wang
 
From: juzhe.zhong@rivai.ai
Date: 2023-12-08 10:56
To: wangfeng; gcc-patches
CC: kito.cheng; jeffreyalaw; wangfeng
Subject: Re: [PATCH][v2] RISC-V: Add avail interface into function_group_info
Hi, Thanks for the patience.

Some nit comments below:
-   Copyright (C) 2022-2023 Free Software Foundation, Inc.
-   Contributed by Juzhe Zhong (juzhe.zhong@rivai.ai), RiVAI Technologies Ltd.
+   Copyright (C, ) 2022-2023 Free Software Foundation, Inc.
+   Contributed by Juzhe Zhong (juzhe.zhong@rivai.ai, ), RiVAI Technologies Ltd.
Typo ?



+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

Add comment here:

RVV intrinsics API tests are not staying on the GCC testsuite statically, instead, they are generated dynamically
by test generator in https://github.com/riscv-non-isa/rvv-intrinsic-doc.  Folder name here which is hold those API tests
should be consistent with the test generator.


Otherwise, LGTM on myside.

But I'd like to see whether kito has more comments.



juzhe.zhong@rivai.ai
 
From: Feng Wang
Date: 2023-12-08 10:44
To: gcc-patches
CC: kito.cheng; jeffreyalaw; juzhe.zhong; Feng Wang
Subject: [PATCH][v2] RISC-V: Add avail interface into function_group_info
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 (juzhe.zhong@rivai.ai), RiVAI Technologies Ltd.
+   Copyright (C, ) 2022-2023 Free Software Foundation, Inc.
+   Contributed by Juzhe Zhong (juzhe.zhong@rivai.ai, ), 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
 
 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH][v2] RISC-V: Add avail interface into function_group_info
  2023-12-08  2:44 [PATCH][v2] RISC-V: Add avail interface into function_group_info Feng Wang
  2023-12-08  2:51 ` Feng Wang
  2023-12-08  2:56 ` juzhe.zhong
@ 2023-12-08  3:18 ` Kito Cheng
  2023-12-08  3:25   ` Feng Wang
  2 siblings, 1 reply; 9+ messages in thread
From: Kito Cheng @ 2023-12-08  3:18 UTC (permalink / raw)
  To: Feng Wang; +Cc: gcc-patches, jeffreyalaw, juzhe.zhong

> @@ -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)


#define DEF_RVV_FUNCTION(NAME, SHAPE, PREDS, OPS_INFO, ...)

>  #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, )

And keep this unchanged, you don't need extra comma.

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
>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Re: [PATCH][v2] RISC-V: Add avail interface into function_group_info
  2023-12-08  3:18 ` Kito Cheng
@ 2023-12-08  3:25   ` Feng Wang
  2023-12-08  3:35     ` Kito Cheng
  0 siblings, 1 reply; 9+ messages in thread
From: Feng Wang @ 2023-12-08  3:25 UTC (permalink / raw)
  To: kito.cheng; +Cc: gcc-patches, Jeff Law, juzhe.zhong

2023-12-08 11:18 Kito Cheng <kito.cheng@gmail.com> wrote:



>> @@ -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)



>



>



>#define DEF_RVV_FUNCTION(NAME, SHAPE, PREDS, OPS_INFO, ...)



>



>>  #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, )



>



>And keep this unchanged, you don't need extra comma.



>

Without comma, there is a warning "warning: ISO C++11 requires at least one argument for the "..." in a variadic macro".
So I add the comma.

>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



>>



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Re: [PATCH][v2] RISC-V: Add avail interface into function_group_info
  2023-12-08  3:25   ` Feng Wang
@ 2023-12-08  3:35     ` Kito Cheng
  2023-12-08  5:58       ` Feng Wang
  0 siblings, 1 reply; 9+ messages in thread
From: Kito Cheng @ 2023-12-08  3:35 UTC (permalink / raw)
  To: Feng Wang; +Cc: gcc-patches, Jeff Law, juzhe.zhong

> Without comma, there is a warning "warning: ISO C++11 requires at least one argument for the "..." in a variadic macro".
> So I add the comma.

Oh, thanks, I wasn't aware that, maybe take one more argument to '...'

#define DEF_RVV_FUNCTION(NAME, SHAPE, PREDS, ...)

Anyway my intention is to reduce unnecessary diff as possible.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Re: [PATCH][v2] RISC-V: Add avail interface into function_group_info
  2023-12-08  3:35     ` Kito Cheng
@ 2023-12-08  5:58       ` Feng Wang
  0 siblings, 0 replies; 9+ messages in thread
From: Feng Wang @ 2023-12-08  5:58 UTC (permalink / raw)
  To: kito.cheng; +Cc: gcc-patches, Jeff Law, juzhe.zhong

2023-12-08 11:35 Kito Cheng <kito.cheng@gmail.com> wrote:



>> Without comma, there is a warning "warning: ISO C++11 requires at least one argument for the "..." in a variadic macro".
>> So I add the comma.
>
>Oh, thanks, I wasn't aware that, maybe take one more argument to '...'
>
>#define DEF_RVV_FUNCTION(NAME, SHAPE, PREDS, ...)
>
>Anyway my intention is to reduce unnecessary diff as possible.

Hi Kito, I understand. 
So I tried to many ways want to minimize this modification, I have also tried the method you mentioned,there is still a warning.
But just a warning won't affect the functionality.If you think it's okay, then there's no need to modify the original definition.

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2023-12-08  5:58 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-12-08  2:44 [PATCH][v2] RISC-V: Add avail interface into function_group_info Feng Wang
2023-12-08  2:51 ` Feng Wang
2023-12-08  2:56 ` juzhe.zhong
2023-12-08  3:06   ` Feng Wang
2023-12-08  3:14     ` juzhe.zhong
2023-12-08  3:18 ` Kito Cheng
2023-12-08  3:25   ` Feng Wang
2023-12-08  3:35     ` Kito Cheng
2023-12-08  5:58       ` Feng Wang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).