2023-12-07 20:23 juzhe.zhong <juzhe.zh...@rivai.ai> wrote:
>Thanks for doing this! > >+AVAIL (always, true) >-> AVAIL (true, true) > >+DEF_RVV_FUNCTION (vmul, alu, full_preds, iu_vvv_ops, always) >-> DEF_RVV_FUNCTION (vmul, alu, full_preds, iu_vvv_ops, true) > >Btw, we have full coverage rvv -intrinsic API testing generator for GNU . >https://github.com/riscv-non-isa/rvv-intrinsic-doc/ >Could you run it ? Your colleague Lixu knows it. > OK. got it, I will run it. Thanks. > > > >juzhe.zh...@rivai.ai > >From: Feng Wang >Date: 2023-12-07 20:17 >To: gcc-patches >CC: kito.cheng; jeffreyalaw; juzhe.zhong; Feng Wang >Subject: [PATCH] RISC-V: Add avail interface into function_group_info >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 def. >(read_vl): Add avail_always interface. >(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): Add AVAIL marco. >* config/riscv/riscv-vector-builtins.h (struct function_group_info): >Add new member avail into struct. >* config/riscv/riscv-vector-builtins-avail.h: New file.The definition of AVAIL >marco. >--- >.../riscv/riscv-vector-builtins-avail.h | 18 + >.../riscv/riscv-vector-builtins-functions.def | 946 +++++++++--------- >gcc/config/riscv/riscv-vector-builtins.cc | 6 +- >gcc/config/riscv/riscv-vector-builtins.h | 2 + >4 files changed, 497 insertions(+), 475 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..1b7a8291881 >--- /dev/null >+++ b/gcc/config/riscv/riscv-vector-builtins-avail.h >@@ -0,0 +1,18 @@ >+#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); \ >+ } >+ >+AVAIL (always, true) >+ >+} >+#endif >diff --git a/gcc/config/riscv/riscv-vector-builtins-functions.def >b/gcc/config/riscv/riscv-vector-builtins-functions.def >index 1c37fd5fffe..d1fe600177f 100644 >--- a/gcc/config/riscv/riscv-vector-builtins-functions.def >+++ b/gcc/config/riscv/riscv-vector-builtins-functions.def >@@ -33,622 +33,622 @@ along with GCC; see the file COPYING3. If not see >*/ >#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, always) >+DEF_RVV_FUNCTION (vlenb, vlenb, none_preds, ul_none_void_ops, always) >/* 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, always) >+DEF_RVV_FUNCTION (vsetvlmax, vsetvlmax, none_preds, i_none_size_void_ops, >always) >/* 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, >always) >+DEF_RVV_FUNCTION (vse, loadstore, none_m_preds, all_v_scalar_ptr_ops, always) >+DEF_RVV_FUNCTION (vlm, loadstore, none_preds, b_v_scalar_const_ptr_ops, >always) >+DEF_RVV_FUNCTION (vsm, loadstore, none_preds, b_v_scalar_ptr_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vsse, loadstore, none_m_preds, >all_v_scalar_ptr_ptrdiff_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vluxei16, indexed_loadstore, full_preds, >all_v_scalar_const_ptr_eew16_index_ops, always) >+DEF_RVV_FUNCTION (vluxei32, indexed_loadstore, full_preds, >all_v_scalar_const_ptr_eew32_index_ops, always) >+DEF_RVV_FUNCTION (vluxei64, indexed_loadstore, full_preds, >all_v_scalar_const_ptr_eew64_index_ops, always) >+DEF_RVV_FUNCTION (vloxei8, indexed_loadstore, full_preds, >all_v_scalar_const_ptr_eew8_index_ops, always) >+DEF_RVV_FUNCTION (vloxei16, indexed_loadstore, full_preds, >all_v_scalar_const_ptr_eew16_index_ops, always) >+DEF_RVV_FUNCTION (vloxei32, indexed_loadstore, full_preds, >all_v_scalar_const_ptr_eew32_index_ops, always) >+DEF_RVV_FUNCTION (vloxei64, indexed_loadstore, full_preds, >all_v_scalar_const_ptr_eew64_index_ops, always) >+DEF_RVV_FUNCTION (vsuxei8, indexed_loadstore, none_m_preds, >all_v_scalar_ptr_eew8_index_ops, always) >+DEF_RVV_FUNCTION (vsuxei16, indexed_loadstore, none_m_preds, >all_v_scalar_ptr_eew16_index_ops, always) >+DEF_RVV_FUNCTION (vsuxei32, indexed_loadstore, none_m_preds, >all_v_scalar_ptr_eew32_index_ops, always) >+DEF_RVV_FUNCTION (vsuxei64, indexed_loadstore, none_m_preds, >all_v_scalar_ptr_eew64_index_ops, always) >+DEF_RVV_FUNCTION (vsoxei8, indexed_loadstore, none_m_preds, >all_v_scalar_ptr_eew8_index_ops, always) >+DEF_RVV_FUNCTION (vsoxei16, indexed_loadstore, none_m_preds, >all_v_scalar_ptr_eew16_index_ops, always) >+DEF_RVV_FUNCTION (vsoxei32, indexed_loadstore, none_m_preds, >all_v_scalar_ptr_eew32_index_ops, always) >+DEF_RVV_FUNCTION (vsoxei64, indexed_loadstore, none_m_preds, >all_v_scalar_ptr_eew64_index_ops, always) >// 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, always) >// 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, always) >+DEF_RVV_FUNCTION (vadd, alu, full_preds, iu_vvx_ops, always) >+DEF_RVV_FUNCTION (vsub, alu, full_preds, iu_vvv_ops, always) >+DEF_RVV_FUNCTION (vsub, alu, full_preds, iu_vvx_ops, always) >+DEF_RVV_FUNCTION (vrsub, alu, full_preds, iu_vvx_ops, always) >+DEF_RVV_FUNCTION (vneg, alu, full_preds, iu_v_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vwaddu, widen_alu, full_preds, u_wvx_ops, always) >+DEF_RVV_FUNCTION (vwsubu, widen_alu, full_preds, u_wvv_ops, always) >+DEF_RVV_FUNCTION (vwsubu, widen_alu, full_preds, u_wvx_ops, always) >+DEF_RVV_FUNCTION (vwadd, widen_alu, full_preds, i_wvv_ops, always) >+DEF_RVV_FUNCTION (vwadd, widen_alu, full_preds, i_wvx_ops, always) >+DEF_RVV_FUNCTION (vwsub, widen_alu, full_preds, i_wvv_ops, always) >+DEF_RVV_FUNCTION (vwsub, widen_alu, full_preds, i_wvx_ops, always) >+DEF_RVV_FUNCTION (vwaddu, widen_alu, full_preds, u_wwv_ops, always) >+DEF_RVV_FUNCTION (vwaddu, widen_alu, full_preds, u_wwx_ops, always) >+DEF_RVV_FUNCTION (vwsubu, widen_alu, full_preds, u_wwv_ops, always) >+DEF_RVV_FUNCTION (vwsubu, widen_alu, full_preds, u_wwx_ops, always) >+DEF_RVV_FUNCTION (vwadd, widen_alu, full_preds, i_wwv_ops, always) >+DEF_RVV_FUNCTION (vwadd, widen_alu, full_preds, i_wwx_ops, always) >+DEF_RVV_FUNCTION (vwsub, widen_alu, full_preds, i_wwv_ops, always) >+DEF_RVV_FUNCTION (vwsub, widen_alu, full_preds, i_wwx_ops, always) >+DEF_RVV_FUNCTION (vwcvt_x, alu, full_preds, i_x_x_v_ops, always) >+DEF_RVV_FUNCTION (vwcvtu_x, alu, full_preds, u_x_x_v_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vzext, widen_alu, full_preds, u_vf4_ops, always) >+DEF_RVV_FUNCTION (vzext, widen_alu, full_preds, u_vf8_ops, always) >+DEF_RVV_FUNCTION (vsext, widen_alu, full_preds, i_vf2_ops, always) >+DEF_RVV_FUNCTION (vsext, widen_alu, full_preds, i_vf4_ops, always) >+DEF_RVV_FUNCTION (vsext, widen_alu, full_preds, i_vf8_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vadc, no_mask_policy, none_tu_preds, iu_vvxm_ops, always) >+DEF_RVV_FUNCTION (vmadc, return_mask, none_preds, iu_mvvm_ops, always) >+DEF_RVV_FUNCTION (vmadc, return_mask, none_preds, iu_mvxm_ops, always) >+DEF_RVV_FUNCTION (vmadc, return_mask, none_preds, iu_mvv_ops, always) >+DEF_RVV_FUNCTION (vmadc, return_mask, none_preds, iu_mvx_ops, always) >+DEF_RVV_FUNCTION (vsbc, no_mask_policy, none_tu_preds, iu_vvvm_ops, always) >+DEF_RVV_FUNCTION (vsbc, no_mask_policy, none_tu_preds, iu_vvxm_ops, always) >+DEF_RVV_FUNCTION (vmsbc, return_mask, none_preds, iu_mvvm_ops, always) >+DEF_RVV_FUNCTION (vmsbc, return_mask, none_preds, iu_mvxm_ops, always) >+DEF_RVV_FUNCTION (vmsbc, return_mask, none_preds, iu_mvv_ops, always) >+DEF_RVV_FUNCTION (vmsbc, return_mask, none_preds, iu_mvx_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vand, alu, full_preds, iu_vvx_ops, always) >+DEF_RVV_FUNCTION (vor, alu, full_preds, iu_vvv_ops, always) >+DEF_RVV_FUNCTION (vor, alu, full_preds, iu_vvx_ops, always) >+DEF_RVV_FUNCTION (vxor, alu, full_preds, iu_vvv_ops, always) >+DEF_RVV_FUNCTION (vxor, alu, full_preds, iu_vvx_ops, always) >+DEF_RVV_FUNCTION (vnot, alu, full_preds, iu_v_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vsll, alu, full_preds, iu_shift_vvx_ops, always) >+DEF_RVV_FUNCTION (vsra, alu, full_preds, i_shift_vvv_ops, always) >+DEF_RVV_FUNCTION (vsra, alu, full_preds, i_shift_vvx_ops, always) >+DEF_RVV_FUNCTION (vsrl, alu, full_preds, u_shift_vvv_ops, always) >+DEF_RVV_FUNCTION (vsrl, alu, full_preds, u_shift_vvx_ops, always) >// 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, >always) >+DEF_RVV_FUNCTION (vnsrl, narrow_alu, full_preds, u_narrow_shift_vwx_ops, >always) >+DEF_RVV_FUNCTION (vnsra, narrow_alu, full_preds, i_narrow_shift_vwv_ops, >always) >+DEF_RVV_FUNCTION (vnsra, narrow_alu, full_preds, i_narrow_shift_vwx_ops, >always) >+DEF_RVV_FUNCTION (vncvt_x, narrow_alu, full_preds, iu_trunc_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vmseq, return_mask, none_m_mu_preds, iu_mvx_ops, always) >+DEF_RVV_FUNCTION (vmsne, return_mask, none_m_mu_preds, iu_mvv_ops, always) >+DEF_RVV_FUNCTION (vmsne, return_mask, none_m_mu_preds, iu_mvx_ops, always) >+DEF_RVV_FUNCTION (vmsltu, return_mask, none_m_mu_preds, u_mvv_ops, always) >+DEF_RVV_FUNCTION (vmsltu, return_mask, none_m_mu_preds, u_mvx_ops, always) >+DEF_RVV_FUNCTION (vmslt, return_mask, none_m_mu_preds, i_mvv_ops, always) >+DEF_RVV_FUNCTION (vmslt, return_mask, none_m_mu_preds, i_mvx_ops, always) >+DEF_RVV_FUNCTION (vmsleu, return_mask, none_m_mu_preds, u_mvv_ops, always) >+DEF_RVV_FUNCTION (vmsleu, return_mask, none_m_mu_preds, u_mvx_ops, always) >+DEF_RVV_FUNCTION (vmsle, return_mask, none_m_mu_preds, i_mvv_ops, always) >+DEF_RVV_FUNCTION (vmsle, return_mask, none_m_mu_preds, i_mvx_ops, always) >+DEF_RVV_FUNCTION (vmsgtu, return_mask, none_m_mu_preds, u_mvv_ops, always) >+DEF_RVV_FUNCTION (vmsgtu, return_mask, none_m_mu_preds, u_mvx_ops, always) >+DEF_RVV_FUNCTION (vmsgt, return_mask, none_m_mu_preds, i_mvv_ops, always) >+DEF_RVV_FUNCTION (vmsgt, return_mask, none_m_mu_preds, i_mvx_ops, always) >+DEF_RVV_FUNCTION (vmsgeu, return_mask, none_m_mu_preds, u_mvv_ops, always) >+DEF_RVV_FUNCTION (vmsgeu, return_mask, none_m_mu_preds, u_mvx_ops, always) >+DEF_RVV_FUNCTION (vmsge, return_mask, none_m_mu_preds, i_mvv_ops, always) >+DEF_RVV_FUNCTION (vmsge, return_mask, none_m_mu_preds, i_mvx_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vminu, alu, full_preds, u_vvx_ops, always) >+DEF_RVV_FUNCTION (vmin, alu, full_preds, i_vvv_ops, always) >+DEF_RVV_FUNCTION (vmin, alu, full_preds, i_vvx_ops, always) >+DEF_RVV_FUNCTION (vmaxu, alu, full_preds, u_vvv_ops, always) >+DEF_RVV_FUNCTION (vmaxu, alu, full_preds, u_vvx_ops, always) >+DEF_RVV_FUNCTION (vmax, alu, full_preds, i_vvv_ops, always) >+DEF_RVV_FUNCTION (vmax, alu, full_preds, i_vvx_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vmul, alu, full_preds, iu_vvx_ops, always) >+DEF_RVV_FUNCTION (vmulh, alu, full_preds, full_v_i_vvv_ops, always) >+DEF_RVV_FUNCTION (vmulh, alu, full_preds, full_v_i_vvx_ops, always) >+DEF_RVV_FUNCTION (vmulhu, alu, full_preds, full_v_u_vvv_ops, always) >+DEF_RVV_FUNCTION (vmulhu, alu, full_preds, full_v_u_vvx_ops, always) >+DEF_RVV_FUNCTION (vmulhsu, alu, full_preds, full_v_i_su_vvv_ops, always) >+DEF_RVV_FUNCTION (vmulhsu, alu, full_preds, full_v_i_su_vvx_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vdivu, alu, full_preds, u_vvx_ops, always) >+DEF_RVV_FUNCTION (vdiv, alu, full_preds, i_vvv_ops, always) >+DEF_RVV_FUNCTION (vdiv, alu, full_preds, i_vvx_ops, always) >+DEF_RVV_FUNCTION (vremu, alu, full_preds, u_vvv_ops, always) >+DEF_RVV_FUNCTION (vremu, alu, full_preds, u_vvx_ops, always) >+DEF_RVV_FUNCTION (vrem, alu, full_preds, i_vvv_ops, always) >+DEF_RVV_FUNCTION (vrem, alu, full_preds, i_vvx_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vwmul, alu, full_preds, i_wvx_ops, always) >+DEF_RVV_FUNCTION (vwmulu, alu, full_preds, u_wvv_ops, always) >+DEF_RVV_FUNCTION (vwmulu, alu, full_preds, u_wvx_ops, always) >+DEF_RVV_FUNCTION (vwmulsu, alu, full_preds, i_su_wvv_ops, always) >+DEF_RVV_FUNCTION (vwmulsu, alu, full_preds, i_su_wvx_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vmacc, alu, full_preds, iu_vvxv_ops, always) >+DEF_RVV_FUNCTION (vnmsac, alu, full_preds, iu_vvvv_ops, always) >+DEF_RVV_FUNCTION (vnmsac, alu, full_preds, iu_vvxv_ops, always) >+DEF_RVV_FUNCTION (vmadd, alu, full_preds, iu_vvvv_ops, always) >+DEF_RVV_FUNCTION (vmadd, alu, full_preds, iu_vvxv_ops, always) >+DEF_RVV_FUNCTION (vnmsub, alu, full_preds, iu_vvvv_ops, always) >+DEF_RVV_FUNCTION (vnmsub, alu, full_preds, iu_vvxv_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vwmaccu, alu, full_preds, u_wwxv_ops, always) >+DEF_RVV_FUNCTION (vwmacc, alu, full_preds, i_wwvv_ops, always) >+DEF_RVV_FUNCTION (vwmacc, alu, full_preds, i_wwxv_ops, always) >+DEF_RVV_FUNCTION (vwmaccsu, alu, full_preds, i_su_wwvv_ops, always) >+DEF_RVV_FUNCTION (vwmaccsu, alu, full_preds, i_su_wwxv_ops, always) >+DEF_RVV_FUNCTION (vwmaccus, alu, full_preds, i_us_wwxv_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vmerge, no_mask_policy, none_tu_preds, iu_vvxm_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vmv_v, move, none_tu_preds, iu_x_ops, always) >/* 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, always) >+DEF_RVV_FUNCTION (vsaddu, alu, full_preds, u_vvx_ops, always) >+DEF_RVV_FUNCTION (vsadd, alu, full_preds, i_vvv_ops, always) >+DEF_RVV_FUNCTION (vsadd, alu, full_preds, i_vvx_ops, always) >+DEF_RVV_FUNCTION (vssubu, alu, full_preds, u_vvv_ops, always) >+DEF_RVV_FUNCTION (vssubu, alu, full_preds, u_vvx_ops, always) >+DEF_RVV_FUNCTION (vssub, alu, full_preds, i_vvv_ops, always) >+DEF_RVV_FUNCTION (vssub, alu, full_preds, i_vvx_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vaaddu, alu, full_preds, u_vvx_ops, always) >+DEF_RVV_FUNCTION (vaadd, alu, full_preds, i_vvv_ops, always) >+DEF_RVV_FUNCTION (vaadd, alu, full_preds, i_vvx_ops, always) >+DEF_RVV_FUNCTION (vasubu, alu, full_preds, u_vvv_ops, always) >+DEF_RVV_FUNCTION (vasubu, alu, full_preds, u_vvx_ops, always) >+DEF_RVV_FUNCTION (vasub, alu, full_preds, i_vvv_ops, always) >+DEF_RVV_FUNCTION (vasub, alu, full_preds, i_vvx_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vsmul, alu, full_preds, full_v_i_vvx_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vssrl, alu, full_preds, u_shift_vvx_ops, always) >+DEF_RVV_FUNCTION (vssra, alu, full_preds, i_shift_vvv_ops, always) >+DEF_RVV_FUNCTION (vssra, alu, full_preds, i_shift_vvx_ops, always) >// 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, >always) >+DEF_RVV_FUNCTION (vnclipu, narrow_alu, full_preds, u_narrow_shift_vwx_ops, >always) >+DEF_RVV_FUNCTION (vnclip, narrow_alu, full_preds, i_narrow_shift_vwv_ops, >always) >+DEF_RVV_FUNCTION (vnclip, narrow_alu, full_preds, i_narrow_shift_vwx_ops, >always) >/* 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, always) >+DEF_RVV_FUNCTION (vfadd, alu, full_preds, f_vvf_ops, always) >+DEF_RVV_FUNCTION (vfsub, alu, full_preds, f_vvv_ops, always) >+DEF_RVV_FUNCTION (vfsub, alu, full_preds, f_vvf_ops, always) >+DEF_RVV_FUNCTION (vfrsub, alu, full_preds, f_vvf_ops, always) >+DEF_RVV_FUNCTION (vfadd_frm, alu_frm, full_preds, f_vvv_ops, always) >+DEF_RVV_FUNCTION (vfadd_frm, alu_frm, full_preds, f_vvf_ops, always) >+DEF_RVV_FUNCTION (vfsub_frm, alu_frm, full_preds, f_vvv_ops, always) >+DEF_RVV_FUNCTION (vfsub_frm, alu_frm, full_preds, f_vvf_ops, always) >+DEF_RVV_FUNCTION (vfrsub_frm, alu_frm, full_preds, f_vvf_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vfwadd, widen_alu, full_preds, f_wvf_ops, always) >+DEF_RVV_FUNCTION (vfwsub, widen_alu, full_preds, f_wvv_ops, always) >+DEF_RVV_FUNCTION (vfwsub, widen_alu, full_preds, f_wvf_ops, always) >+DEF_RVV_FUNCTION (vfwadd, widen_alu, full_preds, f_wwv_ops, always) >+DEF_RVV_FUNCTION (vfwadd, widen_alu, full_preds, f_wwf_ops, always) >+DEF_RVV_FUNCTION (vfwsub, widen_alu, full_preds, f_wwv_ops, always) >+DEF_RVV_FUNCTION (vfwsub, widen_alu, full_preds, f_wwf_ops, always) >+DEF_RVV_FUNCTION (vfwadd_frm, widen_alu_frm, full_preds, f_wvv_ops, always) >+DEF_RVV_FUNCTION (vfwadd_frm, widen_alu_frm, full_preds, f_wvf_ops, always) >+DEF_RVV_FUNCTION (vfwsub_frm, widen_alu_frm, full_preds, f_wvv_ops, always) >+DEF_RVV_FUNCTION (vfwsub_frm, widen_alu_frm, full_preds, f_wvf_ops, always) >+DEF_RVV_FUNCTION (vfwadd_frm, widen_alu_frm, full_preds, f_wwv_ops, always) >+DEF_RVV_FUNCTION (vfwadd_frm, widen_alu_frm, full_preds, f_wwf_ops, always) >+DEF_RVV_FUNCTION (vfwsub_frm, widen_alu_frm, full_preds, f_wwv_ops, always) >+DEF_RVV_FUNCTION (vfwsub_frm, widen_alu_frm, full_preds, f_wwf_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vfmul, alu, full_preds, f_vvf_ops, always) >+DEF_RVV_FUNCTION (vfdiv, alu, full_preds, f_vvv_ops, always) >+DEF_RVV_FUNCTION (vfdiv, alu, full_preds, f_vvf_ops, always) >+DEF_RVV_FUNCTION (vfrdiv, alu, full_preds, f_vvf_ops, always) >+DEF_RVV_FUNCTION (vfmul_frm, alu_frm, full_preds, f_vvv_ops, always) >+DEF_RVV_FUNCTION (vfmul_frm, alu_frm, full_preds, f_vvf_ops, always) >+DEF_RVV_FUNCTION (vfdiv_frm, alu_frm, full_preds, f_vvv_ops, always) >+DEF_RVV_FUNCTION (vfdiv_frm, alu_frm, full_preds, f_vvf_ops, always) >+DEF_RVV_FUNCTION (vfrdiv_frm, alu_frm, full_preds, f_vvf_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vfwmul, alu, full_preds, f_wvf_ops, always) >+DEF_RVV_FUNCTION (vfwmul_frm, alu_frm, full_preds, f_wvv_ops, always) >+DEF_RVV_FUNCTION (vfwmul_frm, alu_frm, full_preds, f_wvf_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vfmacc, alu, full_preds, f_vvfv_ops, always) >+DEF_RVV_FUNCTION (vfnmsac, alu, full_preds, f_vvvv_ops, always) >+DEF_RVV_FUNCTION (vfnmsac, alu, full_preds, f_vvfv_ops, always) >+DEF_RVV_FUNCTION (vfmadd, alu, full_preds, f_vvvv_ops, always) >+DEF_RVV_FUNCTION (vfmadd, alu, full_preds, f_vvfv_ops, always) >+DEF_RVV_FUNCTION (vfnmsub, alu, full_preds, f_vvvv_ops, always) >+DEF_RVV_FUNCTION (vfnmsub, alu, full_preds, f_vvfv_ops, always) >+DEF_RVV_FUNCTION (vfnmacc, alu, full_preds, f_vvvv_ops, always) >+DEF_RVV_FUNCTION (vfnmacc, alu, full_preds, f_vvfv_ops, always) >+DEF_RVV_FUNCTION (vfmsac, alu, full_preds, f_vvvv_ops, always) >+DEF_RVV_FUNCTION (vfmsac, alu, full_preds, f_vvfv_ops, always) >+DEF_RVV_FUNCTION (vfnmadd, alu, full_preds, f_vvvv_ops, always) >+DEF_RVV_FUNCTION (vfnmadd, alu, full_preds, f_vvfv_ops, always) >+DEF_RVV_FUNCTION (vfmsub, alu, full_preds, f_vvvv_ops, always) >+DEF_RVV_FUNCTION (vfmsub, alu, full_preds, f_vvfv_ops, always) >+ >+DEF_RVV_FUNCTION (vfmacc_frm, alu_frm, full_preds, f_vvvv_ops, always) >+DEF_RVV_FUNCTION (vfmacc_frm, alu_frm, full_preds, f_vvfv_ops, always) >+DEF_RVV_FUNCTION (vfnmacc_frm, alu_frm, full_preds, f_vvvv_ops, always) >+DEF_RVV_FUNCTION (vfnmacc_frm, alu_frm, full_preds, f_vvfv_ops, always) >+DEF_RVV_FUNCTION (vfmsac_frm, alu_frm, full_preds, f_vvvv_ops, always) >+DEF_RVV_FUNCTION (vfmsac_frm, alu_frm, full_preds, f_vvfv_ops, always) >+DEF_RVV_FUNCTION (vfnmsac_frm, alu_frm, full_preds, f_vvvv_ops, always) >+DEF_RVV_FUNCTION (vfnmsac_frm, alu_frm, full_preds, f_vvfv_ops, always) >+DEF_RVV_FUNCTION (vfmadd_frm, alu_frm, full_preds, f_vvvv_ops, always) >+DEF_RVV_FUNCTION (vfmadd_frm, alu_frm, full_preds, f_vvfv_ops, always) >+DEF_RVV_FUNCTION (vfnmadd_frm, alu_frm, full_preds, f_vvvv_ops, always) >+DEF_RVV_FUNCTION (vfnmadd_frm, alu_frm, full_preds, f_vvfv_ops, always) >+DEF_RVV_FUNCTION (vfmsub_frm, alu_frm, full_preds, f_vvvv_ops, always) >+DEF_RVV_FUNCTION (vfmsub_frm, alu_frm, full_preds, f_vvfv_ops, always) >+DEF_RVV_FUNCTION (vfnmsub_frm, alu_frm, full_preds, f_vvvv_ops, always) >+DEF_RVV_FUNCTION (vfnmsub_frm, alu_frm, full_preds, f_vvfv_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vfwmacc, alu, full_preds, f_wwfv_ops, always) >+DEF_RVV_FUNCTION (vfwnmacc, alu, full_preds, f_wwvv_ops, always) >+DEF_RVV_FUNCTION (vfwnmacc, alu, full_preds, f_wwfv_ops, always) >+DEF_RVV_FUNCTION (vfwmsac, alu, full_preds, f_wwvv_ops, always) >+DEF_RVV_FUNCTION (vfwmsac, alu, full_preds, f_wwfv_ops, always) >+DEF_RVV_FUNCTION (vfwnmsac, alu, full_preds, f_wwvv_ops, always) >+DEF_RVV_FUNCTION (vfwnmsac, alu, full_preds, f_wwfv_ops, always) >+ >+DEF_RVV_FUNCTION (vfwmacc_frm, alu_frm, full_preds, f_wwvv_ops, always) >+DEF_RVV_FUNCTION (vfwmacc_frm, alu_frm, full_preds, f_wwfv_ops, always) >+DEF_RVV_FUNCTION (vfwnmacc_frm, alu_frm, full_preds, f_wwvv_ops, always) >+DEF_RVV_FUNCTION (vfwnmacc_frm, alu_frm, full_preds, f_wwfv_ops, always) >+DEF_RVV_FUNCTION (vfwmsac_frm, alu_frm, full_preds, f_wwvv_ops, always) >+DEF_RVV_FUNCTION (vfwmsac_frm, alu_frm, full_preds, f_wwfv_ops, always) >+DEF_RVV_FUNCTION (vfwnmsac_frm, alu_frm, full_preds, f_wwvv_ops, always) >+DEF_RVV_FUNCTION (vfwnmsac_frm, alu_frm, full_preds, f_wwfv_ops, always) >// 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, always) >-DEF_RVV_FUNCTION (vfsqrt_frm, alu_frm, full_preds, f_v_ops) >+DEF_RVV_FUNCTION (vfsqrt_frm, alu_frm, full_preds, f_v_ops, always) >// 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, always) >// 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, always) >-DEF_RVV_FUNCTION (vfrec7_frm, alu_frm, full_preds, f_v_ops) >+DEF_RVV_FUNCTION (vfrec7_frm, alu_frm, full_preds, f_v_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vfmin, alu, full_preds, f_vvf_ops, always) >+DEF_RVV_FUNCTION (vfmax, alu, full_preds, f_vvv_ops, always) >+DEF_RVV_FUNCTION (vfmax, alu, full_preds, f_vvf_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vfsgnj, alu, full_preds, f_vvf_ops, always) >+DEF_RVV_FUNCTION (vfsgnjn, alu, full_preds, f_vvv_ops, always) >+DEF_RVV_FUNCTION (vfsgnjn, alu, full_preds, f_vvf_ops, always) >+DEF_RVV_FUNCTION (vfsgnjx, alu, full_preds, f_vvv_ops, always) >+DEF_RVV_FUNCTION (vfsgnjx, alu, full_preds, f_vvf_ops, always) >+DEF_RVV_FUNCTION (vfneg, alu, full_preds, f_v_ops, always) >+DEF_RVV_FUNCTION (vfabs, alu, full_preds, f_v_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vmfeq, return_mask, none_m_mu_preds, f_mvf_ops, always) >+DEF_RVV_FUNCTION (vmfne, return_mask, none_m_mu_preds, f_mvv_ops, always) >+DEF_RVV_FUNCTION (vmfne, return_mask, none_m_mu_preds, f_mvf_ops, always) >+DEF_RVV_FUNCTION (vmflt, return_mask, none_m_mu_preds, f_mvv_ops, always) >+DEF_RVV_FUNCTION (vmflt, return_mask, none_m_mu_preds, f_mvf_ops, always) >+DEF_RVV_FUNCTION (vmfle, return_mask, none_m_mu_preds, f_mvv_ops, always) >+DEF_RVV_FUNCTION (vmfle, return_mask, none_m_mu_preds, f_mvf_ops, always) >+DEF_RVV_FUNCTION (vmfgt, return_mask, none_m_mu_preds, f_mvv_ops, always) >+DEF_RVV_FUNCTION (vmfgt, return_mask, none_m_mu_preds, f_mvf_ops, always) >+DEF_RVV_FUNCTION (vmfge, return_mask, none_m_mu_preds, f_mvv_ops, always) >+DEF_RVV_FUNCTION (vmfge, return_mask, none_m_mu_preds, f_mvf_ops, always) >// 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, always) >// 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, always) >// 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, always) >// 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, always) >+DEF_RVV_FUNCTION (vfcvt_xu, alu, full_preds, f_to_u_f_v_ops, always) >+DEF_RVV_FUNCTION (vfcvt_rtz_x, alu, full_preds, f_to_i_f_v_ops, always) >+DEF_RVV_FUNCTION (vfcvt_rtz_xu, alu, full_preds, f_to_u_f_v_ops, always) >+DEF_RVV_FUNCTION (vfcvt_f, alu, full_preds, i_to_f_x_v_ops, always) >+DEF_RVV_FUNCTION (vfcvt_f, alu, full_preds, u_to_f_xu_v_ops, always) >+ >+DEF_RVV_FUNCTION (vfcvt_x_frm, alu_frm, full_preds, f_to_i_f_v_ops, always) >+DEF_RVV_FUNCTION (vfcvt_xu_frm, alu_frm, full_preds, f_to_u_f_v_ops, always) >+DEF_RVV_FUNCTION (vfcvt_f_frm, alu_frm, full_preds, i_to_f_x_v_ops, always) >+DEF_RVV_FUNCTION (vfcvt_f_frm, alu_frm, full_preds, u_to_f_xu_v_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vfwcvt_xu, alu, full_preds, f_to_wu_f_v_ops, always) >+DEF_RVV_FUNCTION (vfwcvt_rtz_x, alu, full_preds, f_to_wi_f_v_ops, always) >+DEF_RVV_FUNCTION (vfwcvt_rtz_xu, alu, full_preds, f_to_wu_f_v_ops, always) >+DEF_RVV_FUNCTION (vfwcvt_f, alu, full_preds, i_to_wf_x_v_ops, always) >+DEF_RVV_FUNCTION (vfwcvt_f, alu, full_preds, u_to_wf_xu_v_ops, always) >+DEF_RVV_FUNCTION (vfwcvt_f, alu, full_preds, f_to_wf_f_v_ops, always) >-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, always) >+DEF_RVV_FUNCTION (vfwcvt_xu_frm, alu_frm, full_preds, f_to_wu_f_v_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vfncvt_xu, narrow_alu, full_preds, f_to_nu_f_w_ops, always) >+DEF_RVV_FUNCTION (vfncvt_rtz_x, narrow_alu, full_preds, f_to_ni_f_w_ops, >always) >+DEF_RVV_FUNCTION (vfncvt_rtz_xu, narrow_alu, full_preds, f_to_nu_f_w_ops, >always) >+DEF_RVV_FUNCTION (vfncvt_f, narrow_alu, full_preds, i_to_nf_x_w_ops, always) >+DEF_RVV_FUNCTION (vfncvt_f, narrow_alu, full_preds, u_to_nf_xu_w_ops, always) >+DEF_RVV_FUNCTION (vfncvt_f, narrow_alu, full_preds, f_to_nf_f_w_ops, always) >+DEF_RVV_FUNCTION (vfncvt_rod_f, narrow_alu, full_preds, f_to_nf_f_w_ops, >always) >+ >+DEF_RVV_FUNCTION (vfncvt_x_frm, narrow_alu_frm, full_preds, f_to_ni_f_w_ops, >always) >+DEF_RVV_FUNCTION (vfncvt_xu_frm, narrow_alu_frm, full_preds, f_to_nu_f_w_ops, >always) >+DEF_RVV_FUNCTION (vfncvt_f_frm, narrow_alu_frm, full_preds, i_to_nf_x_w_ops, >always) >+DEF_RVV_FUNCTION (vfncvt_f_frm, narrow_alu_frm, full_preds, u_to_nf_xu_w_ops, >always) >+DEF_RVV_FUNCTION (vfncvt_f_frm, narrow_alu_frm, full_preds, f_to_nf_f_w_ops, >always) >/* 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, always) >+DEF_RVV_FUNCTION (vredmaxu, reduc_alu, no_mu_preds, iu_vs_ops, always) >+DEF_RVV_FUNCTION (vredmax, reduc_alu, no_mu_preds, iu_vs_ops, always) >+DEF_RVV_FUNCTION (vredminu, reduc_alu, no_mu_preds, iu_vs_ops, always) >+DEF_RVV_FUNCTION (vredmin, reduc_alu, no_mu_preds, iu_vs_ops, always) >+DEF_RVV_FUNCTION (vredand, reduc_alu, no_mu_preds, iu_vs_ops, always) >+DEF_RVV_FUNCTION (vredor, reduc_alu, no_mu_preds, iu_vs_ops, always) >+DEF_RVV_FUNCTION (vredxor, reduc_alu, no_mu_preds, iu_vs_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vwredsumu, reduc_alu, no_mu_preds, wu_vs_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vfredosum, reduc_alu, no_mu_preds, f_vs_ops, always) >+DEF_RVV_FUNCTION (vfredmax, reduc_alu, no_mu_preds, f_vs_ops, always) >+DEF_RVV_FUNCTION (vfredmin, reduc_alu, no_mu_preds, f_vs_ops, always) >-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, always) >+DEF_RVV_FUNCTION (vfredosum_frm, reduc_alu_frm, no_mu_preds, f_vs_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vfwredusum, reduc_alu, no_mu_preds, wf_vs_ops, always) >-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, >always) >+DEF_RVV_FUNCTION (vfwredusum_frm, reduc_alu_frm, no_mu_preds, wf_vs_ops, >always) >/* 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, always) >+DEF_RVV_FUNCTION (vmnand, mask_alu, none_preds, b_mmm_ops, always) >+DEF_RVV_FUNCTION (vmandn, mask_alu, none_preds, b_mmm_ops, always) >+DEF_RVV_FUNCTION (vmxor, mask_alu, none_preds, b_mmm_ops, always) >+DEF_RVV_FUNCTION (vmor, mask_alu, none_preds, b_mmm_ops, always) >+DEF_RVV_FUNCTION (vmnor, mask_alu, none_preds, b_mmm_ops, always) >+DEF_RVV_FUNCTION (vmorn, mask_alu, none_preds, b_mmm_ops, always) >+DEF_RVV_FUNCTION (vmxnor, mask_alu, none_preds, b_mmm_ops, always) >+DEF_RVV_FUNCTION (vmmv, mask_alu, none_preds, b_mm_ops, always) >+DEF_RVV_FUNCTION (vmclr, mask_alu, none_preds, b_m_ops, always) >+DEF_RVV_FUNCTION (vmset, mask_alu, none_preds, b_m_ops, always) >+DEF_RVV_FUNCTION (vmnot, mask_alu, none_preds, b_mm_ops, always) >// 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, always) >// 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, always) >// 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, always) >// 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, always) >// 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, always) >// 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, always) >// 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, always) >/* 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, always) >+DEF_RVV_FUNCTION (vmv_s, move, none_tu_preds, iu_s_x_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vfmv_s, move, none_tu_preds, f_s_f_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vslidedown, alu, full_preds, all_vvx_ops, always) >+DEF_RVV_FUNCTION (vslide1up, alu, full_preds, iu_vvx_ops, always) >+DEF_RVV_FUNCTION (vslide1down, alu, full_preds, iu_vvx_ops, always) >+DEF_RVV_FUNCTION (vfslide1up, alu, full_preds, f_vvf_ops, always) >+DEF_RVV_FUNCTION (vfslide1down, alu, full_preds, f_vvf_ops, always) >// 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, always) >+DEF_RVV_FUNCTION (vrgather, alu, full_preds, all_gather_vvx_ops, always) >+DEF_RVV_FUNCTION (vrgatherei16, alu, full_preds, all_gatherei16_vvv_ops, >always) >// 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, always) >/* 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, >always) >+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, i_v_u_ops, always) >+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, u_v_i_ops, always) >+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, f_v_i_ops, always) >+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, f_v_u_ops, always) >+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, i_v_f_ops, always) >+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, u_v_f_ops, always) >+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, iu_v_eew8_interpret_ops, >always) >+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, iu_v_eew16_interpret_ops, >always) >+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, iu_v_eew32_interpret_ops, >always) >+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, iu_v_eew64_interpret_ops, >always) >+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, iu_v_bool1_interpret_ops, >always) >+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, iu_v_bool2_interpret_ops, >always) >+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, iu_v_bool4_interpret_ops, >always) >+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, iu_v_bool8_interpret_ops, >always) >+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, iu_v_bool16_interpret_ops, >always) >+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, iu_v_bool32_interpret_ops, >always) >+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, iu_v_bool64_interpret_ops, >always) >+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, >b_v_signed_eew8_lmul1_interpret_ops, always) >+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, >b_v_signed_eew16_lmul1_interpret_ops, always) >+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, >b_v_signed_eew32_lmul1_interpret_ops, always) >+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, >b_v_signed_eew64_lmul1_interpret_ops, always) >+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, >b_v_unsigned_eew8_lmul1_interpret_ops, always) >+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, >b_v_unsigned_eew16_lmul1_interpret_ops, always) >+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, >b_v_unsigned_eew32_lmul1_interpret_ops, always) >+DEF_RVV_FUNCTION (vreinterpret, misc, none_preds, >b_v_unsigned_eew64_lmul1_interpret_ops, always) >+DEF_RVV_FUNCTION (vlmul_ext, misc, none_preds, all_v_vlmul_ext_x2_ops, always) >+DEF_RVV_FUNCTION (vlmul_ext, misc, none_preds, all_v_vlmul_ext_x4_ops, always) >+DEF_RVV_FUNCTION (vlmul_ext, misc, none_preds, all_v_vlmul_ext_x8_ops, always) >+DEF_RVV_FUNCTION (vlmul_ext, misc, none_preds, all_v_vlmul_ext_x16_ops, >always) >+DEF_RVV_FUNCTION (vlmul_ext, misc, none_preds, all_v_vlmul_ext_x32_ops, >always) >+DEF_RVV_FUNCTION (vlmul_ext, misc, none_preds, all_v_vlmul_ext_x64_ops, >always) >+DEF_RVV_FUNCTION (vlmul_trunc, misc, none_preds, all_v_vlmul_trunc_x2_ops, >always) >+DEF_RVV_FUNCTION (vlmul_trunc, misc, none_preds, all_v_vlmul_trunc_x4_ops, >always) >+DEF_RVV_FUNCTION (vlmul_trunc, misc, none_preds, all_v_vlmul_trunc_x8_ops, >always) >+DEF_RVV_FUNCTION (vlmul_trunc, misc, none_preds, all_v_vlmul_trunc_x16_ops, >always) >+DEF_RVV_FUNCTION (vlmul_trunc, misc, none_preds, all_v_vlmul_trunc_x32_ops, >always) >+DEF_RVV_FUNCTION (vlmul_trunc, misc, none_preds, all_v_vlmul_trunc_x64_ops, >always) >+DEF_RVV_FUNCTION (vset, vset, none_preds, all_v_vset_lmul1_x2_ops, always) >+DEF_RVV_FUNCTION (vset, vset, none_preds, all_v_vset_lmul1_x4_ops, always) >+DEF_RVV_FUNCTION (vset, vset, none_preds, all_v_vset_lmul1_x8_ops, always) >+DEF_RVV_FUNCTION (vset, vset, none_preds, all_v_vset_lmul2_x2_ops, always) >+DEF_RVV_FUNCTION (vset, vset, none_preds, all_v_vset_lmul2_x4_ops, always) >+DEF_RVV_FUNCTION (vset, vset, none_preds, all_v_vset_lmul4_x2_ops, always) >+DEF_RVV_FUNCTION (vget, vget, none_preds, all_v_vget_lmul1_x2_ops, always) >+DEF_RVV_FUNCTION (vget, vget, none_preds, all_v_vget_lmul1_x4_ops, always) >+DEF_RVV_FUNCTION (vget, vget, none_preds, all_v_vget_lmul1_x8_ops, always) >+DEF_RVV_FUNCTION (vget, vget, none_preds, all_v_vget_lmul2_x2_ops, always) >+DEF_RVV_FUNCTION (vget, vget, none_preds, all_v_vget_lmul2_x4_ops, always) >+DEF_RVV_FUNCTION (vget, vget, none_preds, all_v_vget_lmul4_x2_ops, always) >+DEF_RVV_FUNCTION (vcreate, vcreate, none_preds, all_v_vcreate_lmul1_x2_ops, >always) >+DEF_RVV_FUNCTION (vcreate, vcreate, none_preds, all_v_vcreate_lmul1_x4_ops, >always) >+DEF_RVV_FUNCTION (vcreate, vcreate, none_preds, all_v_vcreate_lmul1_x8_ops, >always) >+DEF_RVV_FUNCTION (vcreate, vcreate, none_preds, all_v_vcreate_lmul2_x2_ops, >always) >+DEF_RVV_FUNCTION (vcreate, vcreate, none_preds, all_v_vcreate_lmul2_x4_ops, >always) >+DEF_RVV_FUNCTION (vcreate, vcreate, none_preds, all_v_vcreate_lmul4_x2_ops, >always) >// 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, always) >+DEF_RVV_FUNCTION (vget, vget, none_preds, all_v_vget_tuple_ops, always) >+DEF_RVV_FUNCTION (vcreate, vcreate, none_preds, all_v_vcreate_tuple_ops, >always) >+DEF_RVV_FUNCTION (vundefined, vundefined, none_preds, >all_none_void_tuple_ops, always) >+DEF_RVV_FUNCTION (vlseg, seg_loadstore, full_preds, >tuple_v_scalar_const_ptr_ops, always) >+DEF_RVV_FUNCTION (vsseg, seg_loadstore, none_m_preds, tuple_v_scalar_ptr_ops, >always) >+DEF_RVV_FUNCTION (vlsseg, seg_loadstore, full_preds, >tuple_v_scalar_const_ptr_ptrdiff_ops, always) >+DEF_RVV_FUNCTION (vssseg, seg_loadstore, none_m_preds, >tuple_v_scalar_ptr_ptrdiff_ops, always) >+DEF_RVV_FUNCTION (vluxseg, seg_indexed_loadstore, full_preds, >tuple_v_scalar_const_ptr_eew8_index_ops, always) >+DEF_RVV_FUNCTION (vluxseg, seg_indexed_loadstore, full_preds, >tuple_v_scalar_const_ptr_eew16_index_ops, always) >+DEF_RVV_FUNCTION (vluxseg, seg_indexed_loadstore, full_preds, >tuple_v_scalar_const_ptr_eew32_index_ops, always) >+DEF_RVV_FUNCTION (vluxseg, seg_indexed_loadstore, full_preds, >tuple_v_scalar_const_ptr_eew64_index_ops, always) >+DEF_RVV_FUNCTION (vloxseg, seg_indexed_loadstore, full_preds, >tuple_v_scalar_const_ptr_eew8_index_ops, always) >+DEF_RVV_FUNCTION (vloxseg, seg_indexed_loadstore, full_preds, >tuple_v_scalar_const_ptr_eew16_index_ops, always) >+DEF_RVV_FUNCTION (vloxseg, seg_indexed_loadstore, full_preds, >tuple_v_scalar_const_ptr_eew32_index_ops, always) >+DEF_RVV_FUNCTION (vloxseg, seg_indexed_loadstore, full_preds, >tuple_v_scalar_const_ptr_eew64_index_ops, always) >+DEF_RVV_FUNCTION (vsuxseg, seg_indexed_loadstore, none_m_preds, >tuple_v_scalar_ptr_eew8_index_ops, always) >+DEF_RVV_FUNCTION (vsuxseg, seg_indexed_loadstore, none_m_preds, >tuple_v_scalar_ptr_eew16_index_ops, always) >+DEF_RVV_FUNCTION (vsuxseg, seg_indexed_loadstore, none_m_preds, >tuple_v_scalar_ptr_eew32_index_ops, always) >+DEF_RVV_FUNCTION (vsuxseg, seg_indexed_loadstore, none_m_preds, >tuple_v_scalar_ptr_eew64_index_ops, always) >+DEF_RVV_FUNCTION (vsoxseg, seg_indexed_loadstore, none_m_preds, >tuple_v_scalar_ptr_eew8_index_ops, always) >+DEF_RVV_FUNCTION (vsoxseg, seg_indexed_loadstore, none_m_preds, >tuple_v_scalar_ptr_eew16_index_ops, always) >+DEF_RVV_FUNCTION (vsoxseg, seg_indexed_loadstore, none_m_preds, >tuple_v_scalar_ptr_eew32_index_ops, always) >+DEF_RVV_FUNCTION (vsoxseg, seg_indexed_loadstore, none_m_preds, >tuple_v_scalar_ptr_eew64_index_ops, always) >+DEF_RVV_FUNCTION (vlsegff, seg_fault_load, full_preds, >tuple_v_scalar_const_ptr_size_ptr_ops, always) >#undef DEF_RVV_FUNCTION >diff --git a/gcc/config/riscv/riscv-vector-builtins.cc >b/gcc/config/riscv/riscv-vector-builtins.cc >index 6330a3a41c3..dac638b6bcc 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, AVAIL) > \ >+ {#NAME, &bases::NAME, &shapes::SHAPE, PREDS, OPS_INFO,\ >+ riscv_vector_avail_ ## AVAIL}, >#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..74d50c2f849 100644 >--- a/gcc/config/riscv/riscv-vector-builtins.h >+++ b/gcc/config/riscv/riscv-vector-builtins.h >@@ -232,6 +232,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 >-- >2.17.1 > >