The riscv builtins are defined via DIRECT_BUILTIN and DIRECT_NO_TARGET_BUILTIN, which distinguish as to whether the builtin returns a result or not. But that can be directly determined from the builtin's function type (whether it returns void or not).

This patch removes the NO_TARGET macros and adjusts all the .def files appropriately. The riscv_builtin_description structure is adjusted to have a bool indicating it has no target, and this is computed during builtin initialization. The fields are reordered for better packing on a 64-bit host.

nathan
--
Nathan Sidwell
From b56403412a53f7ca4c49fdc759fc6e0ad9b7205f Mon Sep 17 00:00:00 2001
From: Nathan Sidwell <[email protected]>
Date: Tue, 10 Feb 2026 11:39:36 -0500
Subject: [PATCH] [riscv] Simplify builtin definitions

	gcc/
	* config/riscv/riscv-builtins.cc (enum riscv_builtin_type): Delete.
	(struct riscv_builtin_description): Replace builtin_type by bool.
	Reorder fields for better packing.
	(RISCV_BUILTIN_NO_PREFIX): Remove BUILTIN_TYPE arg.
	(RISCV_BUILTIN): Likewise, call RISCV_BUILTIN_NO_PREFIX.
	(DIRECT_BUILTIN): Adjust RISCV_BUILTIN invocation.
	(DIRECT_NO_TARGET_BUILTIN): Delete.
	(riscv_builtins): Make non-constant. Adjust initializers.
	(riscv_init_builtins): Compute no_target from function type.
	(riscv_expand_builtin): Simplify.
	* config/riscv/andes.def: Adjust.
	* config/riscv/corev.def: Adjust.
	* config/riscv/riscv-cmo.def: Adjust.
	* config/riscv/riscv-scalar-crypto.def: Adjust.
---
 gcc/config/riscv/andes.def               |  20 +-
 gcc/config/riscv/corev.def               | 374 +++++++++++------------
 gcc/config/riscv/riscv-builtins.cc       |  87 ++----
 gcc/config/riscv/riscv-cmo.def           |  32 +-
 gcc/config/riscv/riscv-scalar-crypto.def |  66 ++--
 5 files changed, 274 insertions(+), 305 deletions(-)

diff --git a/gcc/config/riscv/andes.def b/gcc/config/riscv/andes.def
index 8345ef6c13b..685892d0003 100644
--- a/gcc/config/riscv/andes.def
+++ b/gcc/config/riscv/andes.def
@@ -1,14 +1,14 @@
 // XANDESPERF
 /* Andes Performance Extension */
-RISCV_BUILTIN (nds_ffbsi, "nds_ffb_32", RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_USI_USI, andesperf32),
-RISCV_BUILTIN (nds_ffbdi, "nds_ffb_64", RISCV_BUILTIN_DIRECT, RISCV_DI_FTYPE_UDI_UDI, andesperf64),
-RISCV_BUILTIN (nds_ffzmismsi, "nds_ffzmism_32", RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_USI_USI, andesperf32),
-RISCV_BUILTIN (nds_ffzmismdi, "nds_ffzmism_64", RISCV_BUILTIN_DIRECT, RISCV_DI_FTYPE_UDI_UDI, andesperf64),
-RISCV_BUILTIN (nds_ffmismsi, "nds_ffmism_32", RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_USI_USI, andesperf32),
-RISCV_BUILTIN (nds_ffmismdi, "nds_ffmism_64", RISCV_BUILTIN_DIRECT, RISCV_DI_FTYPE_UDI_UDI, andesperf64),
-RISCV_BUILTIN (nds_flmismsi, "nds_flmism_32", RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_USI_USI, andesperf32),
-RISCV_BUILTIN (nds_flmismdi, "nds_flmism_64", RISCV_BUILTIN_DIRECT, RISCV_DI_FTYPE_UDI_UDI, andesperf64),
+RISCV_BUILTIN (nds_ffbsi, "nds_ffb_32", RISCV_SI_FTYPE_USI_USI, andesperf32),
+RISCV_BUILTIN (nds_ffbdi, "nds_ffb_64", RISCV_DI_FTYPE_UDI_UDI, andesperf64),
+RISCV_BUILTIN (nds_ffzmismsi, "nds_ffzmism_32", RISCV_SI_FTYPE_USI_USI, andesperf32),
+RISCV_BUILTIN (nds_ffzmismdi, "nds_ffzmism_64", RISCV_DI_FTYPE_UDI_UDI, andesperf64),
+RISCV_BUILTIN (nds_ffmismsi, "nds_ffmism_32", RISCV_SI_FTYPE_USI_USI, andesperf32),
+RISCV_BUILTIN (nds_ffmismdi, "nds_ffmism_64", RISCV_DI_FTYPE_UDI_UDI, andesperf64),
+RISCV_BUILTIN (nds_flmismsi, "nds_flmism_32", RISCV_SI_FTYPE_USI_USI, andesperf32),
+RISCV_BUILTIN (nds_flmismdi, "nds_flmism_64", RISCV_DI_FTYPE_UDI_UDI, andesperf64),
 
 /* Andes Scalar BFLOAT16 Conversion Extension */
-RISCV_BUILTIN_NO_PREFIX (extendbfsf2, "nds_fcvt_s_bf16", RISCV_BUILTIN_DIRECT, RISCV_SF_FTYPE_BF, andesbfhcvt),
-RISCV_BUILTIN_NO_PREFIX (truncsfbf2, "nds_fcvt_bf16_s", RISCV_BUILTIN_DIRECT, RISCV_BF_FTYPE_SF, andesbfhcvt),
+RISCV_BUILTIN_NO_PREFIX (extendbfsf2, "nds_fcvt_s_bf16", RISCV_SF_FTYPE_BF, andesbfhcvt),
+RISCV_BUILTIN_NO_PREFIX (truncsfbf2, "nds_fcvt_bf16_s", RISCV_BF_FTYPE_SF, andesbfhcvt),
diff --git a/gcc/config/riscv/corev.def b/gcc/config/riscv/corev.def
index 9157529fd4c..1ddb7a3f01c 100644
--- a/gcc/config/riscv/corev.def
+++ b/gcc/config/riscv/corev.def
@@ -1,202 +1,202 @@
 // XCVMAC
-RISCV_BUILTIN (cv_mac_mac,       "cv_mac_mac",    RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI_SI_SI,      cvmac),
-RISCV_BUILTIN (cv_mac_msu,       "cv_mac_msu",    RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI_SI_SI,      cvmac),
-RISCV_BUILTIN (cv_mac_muluN,     "cv_mac_muluN",      RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_UQI,  cvmac),
-RISCV_BUILTIN (cv_mac_mulhhuN,   "cv_mac_mulhhuN",    RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_UQI,  cvmac),
-RISCV_BUILTIN (cv_mac_mulsN,     "cv_mac_mulsN",      RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI_SI_UQI,     cvmac),
-RISCV_BUILTIN (cv_mac_mulhhsN,   "cv_mac_mulhhsN",    RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI_SI_UQI,     cvmac),
-RISCV_BUILTIN (cv_mac_muluRN,    "cv_mac_muluRN",     RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_UQI,  cvmac),
-RISCV_BUILTIN (cv_mac_mulhhuRN,  "cv_mac_mulhhuRN",   RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_UQI,  cvmac),
-RISCV_BUILTIN (cv_mac_mulsRN,    "cv_mac_mulsRN",     RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI_SI_UQI,     cvmac),
-RISCV_BUILTIN (cv_mac_mulhhsRN,  "cv_mac_mulhhsRN",   RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI_SI_UQI,     cvmac),
-RISCV_BUILTIN (cv_mac_macuN,     "cv_mac_macuN",      RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_USI_UQI,  cvmac),
-RISCV_BUILTIN (cv_mac_machhuN,   "cv_mac_machhuN",    RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_USI_UQI,  cvmac),
-RISCV_BUILTIN (cv_mac_macsN,     "cv_mac_macsN",      RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI_SI_SI_UQI,      cvmac),
-RISCV_BUILTIN (cv_mac_machhsN,   "cv_mac_machhsN",    RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI_SI_SI_UQI,      cvmac),
-RISCV_BUILTIN (cv_mac_macuRN,    "cv_mac_macuRN",     RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_USI_UQI,  cvmac),
-RISCV_BUILTIN (cv_mac_machhuRN,  "cv_mac_machhuRN",   RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_USI_UQI,  cvmac),
-RISCV_BUILTIN (cv_mac_macsRN,    "cv_mac_macsRN",     RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI_SI_SI_UQI,      cvmac),
-RISCV_BUILTIN (cv_mac_machhsRN,  "cv_mac_machhsRN",   RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI_SI_SI_UQI,      cvmac),
+RISCV_BUILTIN (cv_mac_mac,       "cv_mac_mac",    RISCV_SI_FTYPE_SI_SI_SI,      cvmac),
+RISCV_BUILTIN (cv_mac_msu,       "cv_mac_msu",    RISCV_SI_FTYPE_SI_SI_SI,      cvmac),
+RISCV_BUILTIN (cv_mac_muluN,     "cv_mac_muluN",      RISCV_USI_FTYPE_USI_USI_UQI,  cvmac),
+RISCV_BUILTIN (cv_mac_mulhhuN,   "cv_mac_mulhhuN",    RISCV_USI_FTYPE_USI_USI_UQI,  cvmac),
+RISCV_BUILTIN (cv_mac_mulsN,     "cv_mac_mulsN",      RISCV_SI_FTYPE_SI_SI_UQI,     cvmac),
+RISCV_BUILTIN (cv_mac_mulhhsN,   "cv_mac_mulhhsN",    RISCV_SI_FTYPE_SI_SI_UQI,     cvmac),
+RISCV_BUILTIN (cv_mac_muluRN,    "cv_mac_muluRN",     RISCV_USI_FTYPE_USI_USI_UQI,  cvmac),
+RISCV_BUILTIN (cv_mac_mulhhuRN,  "cv_mac_mulhhuRN",   RISCV_USI_FTYPE_USI_USI_UQI,  cvmac),
+RISCV_BUILTIN (cv_mac_mulsRN,    "cv_mac_mulsRN",     RISCV_SI_FTYPE_SI_SI_UQI,     cvmac),
+RISCV_BUILTIN (cv_mac_mulhhsRN,  "cv_mac_mulhhsRN",   RISCV_SI_FTYPE_SI_SI_UQI,     cvmac),
+RISCV_BUILTIN (cv_mac_macuN,     "cv_mac_macuN",      RISCV_USI_FTYPE_USI_USI_USI_UQI,  cvmac),
+RISCV_BUILTIN (cv_mac_machhuN,   "cv_mac_machhuN",    RISCV_USI_FTYPE_USI_USI_USI_UQI,  cvmac),
+RISCV_BUILTIN (cv_mac_macsN,     "cv_mac_macsN",      RISCV_SI_FTYPE_SI_SI_SI_UQI,      cvmac),
+RISCV_BUILTIN (cv_mac_machhsN,   "cv_mac_machhsN",    RISCV_SI_FTYPE_SI_SI_SI_UQI,      cvmac),
+RISCV_BUILTIN (cv_mac_macuRN,    "cv_mac_macuRN",     RISCV_USI_FTYPE_USI_USI_USI_UQI,  cvmac),
+RISCV_BUILTIN (cv_mac_machhuRN,  "cv_mac_machhuRN",   RISCV_USI_FTYPE_USI_USI_USI_UQI,  cvmac),
+RISCV_BUILTIN (cv_mac_macsRN,    "cv_mac_macsRN",     RISCV_SI_FTYPE_SI_SI_SI_UQI,      cvmac),
+RISCV_BUILTIN (cv_mac_machhsRN,  "cv_mac_machhsRN",   RISCV_SI_FTYPE_SI_SI_SI_UQI,      cvmac),
 
 // XCVALU
-RISCV_BUILTIN (cv_alu_slet,     "cv_alu_slet",  RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI_SI,     cvalu),
-RISCV_BUILTIN (cv_alu_sletu,    "cv_alu_sletu", RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_USI_USI,   cvalu),
-RISCV_BUILTIN (cv_alu_min,      "cv_alu_min",   RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI_SI,     cvalu),
-RISCV_BUILTIN (cv_alu_minu,     "cv_alu_minu",  RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI,  cvalu),
-RISCV_BUILTIN (cv_alu_max,      "cv_alu_max",   RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI_SI,     cvalu),
-RISCV_BUILTIN (cv_alu_maxu,     "cv_alu_maxu",  RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI,  cvalu),
+RISCV_BUILTIN (cv_alu_slet,     "cv_alu_slet",  RISCV_SI_FTYPE_SI_SI,     cvalu),
+RISCV_BUILTIN (cv_alu_sletu,    "cv_alu_sletu", RISCV_SI_FTYPE_USI_USI,   cvalu),
+RISCV_BUILTIN (cv_alu_min,      "cv_alu_min",   RISCV_SI_FTYPE_SI_SI,     cvalu),
+RISCV_BUILTIN (cv_alu_minu,     "cv_alu_minu",  RISCV_USI_FTYPE_USI_USI,  cvalu),
+RISCV_BUILTIN (cv_alu_max,      "cv_alu_max",   RISCV_SI_FTYPE_SI_SI,     cvalu),
+RISCV_BUILTIN (cv_alu_maxu,     "cv_alu_maxu",  RISCV_USI_FTYPE_USI_USI,  cvalu),
 
-RISCV_BUILTIN (cv_alu_exths,    "cv_alu_exths", RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_HI,        cvalu),
-RISCV_BUILTIN (cv_alu_exthz,    "cv_alu_exthz", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_UHI,      cvalu),
-RISCV_BUILTIN (cv_alu_extbs,    "cv_alu_extbs", RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_QI,        cvalu),
-RISCV_BUILTIN (cv_alu_extbz,    "cv_alu_extbz", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_UQI,      cvalu),
+RISCV_BUILTIN (cv_alu_exths,    "cv_alu_exths", RISCV_SI_FTYPE_HI,        cvalu),
+RISCV_BUILTIN (cv_alu_exthz,    "cv_alu_exthz", RISCV_USI_FTYPE_UHI,      cvalu),
+RISCV_BUILTIN (cv_alu_extbs,    "cv_alu_extbs", RISCV_SI_FTYPE_QI,        cvalu),
+RISCV_BUILTIN (cv_alu_extbz,    "cv_alu_extbz", RISCV_USI_FTYPE_UQI,      cvalu),
 
-RISCV_BUILTIN (cv_alu_clip,     "cv_alu_clip",  RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI_SI,     cvalu),
-RISCV_BUILTIN (cv_alu_clipu,    "cv_alu_clipu", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI,  cvalu),
-RISCV_BUILTIN (cv_alu_addN,     "cv_alu_addN",  RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI_SI_UQI, cvalu),
-RISCV_BUILTIN (cv_alu_adduN,    "cv_alu_adduN", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_UQI,  cvalu),
-RISCV_BUILTIN (cv_alu_addRN,    "cv_alu_addRN", RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI_SI_UQI, cvalu),
-RISCV_BUILTIN (cv_alu_adduRN,   "cv_alu_adduRN",RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_UQI,  cvalu),
-RISCV_BUILTIN (cv_alu_subN,     "cv_alu_subN", RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI_SI_UQI, cvalu),
-RISCV_BUILTIN (cv_alu_subuN,    "cv_alu_subuN", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_UQI,  cvalu),
-RISCV_BUILTIN (cv_alu_subRN,    "cv_alu_subRN", RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI_SI_UQI, cvalu),
-RISCV_BUILTIN (cv_alu_subuRN,   "cv_alu_subuRN",RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_UQI,  cvalu),
+RISCV_BUILTIN (cv_alu_clip,     "cv_alu_clip",  RISCV_SI_FTYPE_SI_SI,     cvalu),
+RISCV_BUILTIN (cv_alu_clipu,    "cv_alu_clipu", RISCV_USI_FTYPE_USI_USI,  cvalu),
+RISCV_BUILTIN (cv_alu_addN,     "cv_alu_addN",  RISCV_SI_FTYPE_SI_SI_UQI, cvalu),
+RISCV_BUILTIN (cv_alu_adduN,    "cv_alu_adduN", RISCV_USI_FTYPE_USI_USI_UQI,  cvalu),
+RISCV_BUILTIN (cv_alu_addRN,    "cv_alu_addRN", RISCV_SI_FTYPE_SI_SI_UQI, cvalu),
+RISCV_BUILTIN (cv_alu_adduRN,   "cv_alu_adduRN",RISCV_USI_FTYPE_USI_USI_UQI,  cvalu),
+RISCV_BUILTIN (cv_alu_subN,     "cv_alu_subN", RISCV_SI_FTYPE_SI_SI_UQI, cvalu),
+RISCV_BUILTIN (cv_alu_subuN,    "cv_alu_subuN", RISCV_USI_FTYPE_USI_USI_UQI,  cvalu),
+RISCV_BUILTIN (cv_alu_subRN,    "cv_alu_subRN", RISCV_SI_FTYPE_SI_SI_UQI, cvalu),
+RISCV_BUILTIN (cv_alu_subuRN,   "cv_alu_subuRN",RISCV_USI_FTYPE_USI_USI_UQI,  cvalu),
 
 // XCVELW
-RISCV_BUILTIN (cv_elw_elw_si, "cv_elw_elw", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_VOID_PTR, cvelw),
+RISCV_BUILTIN (cv_elw_elw_si, "cv_elw_elw", RISCV_USI_FTYPE_VOID_PTR, cvelw),
 
 // XCVSIMD
 //ALU Operations
-RISCV_BUILTIN (cv_simd_add_h_si,		"cv_simd_add_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_UQI, 	cvsimd),
-RISCV_BUILTIN (cv_simd_add_b_si,		"cv_simd_add_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_add_sc_h_si,		"cv_simd_add_sc_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_HI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_add_sc_b_si,		"cv_simd_add_sc_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_QI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_sub_h_si,		"cv_simd_sub_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_UQI, 	cvsimd),
-RISCV_BUILTIN (cv_simd_sub_b_si,		"cv_simd_sub_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_sub_sc_h_si,		"cv_simd_sub_sc_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_HI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_sub_sc_b_si,		"cv_simd_sub_sc_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_QI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_avg_h_si,		"cv_simd_avg_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_avg_b_si,		"cv_simd_avg_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_avg_sc_h_si,		"cv_simd_avg_sc_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_HI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_avg_sc_b_si,		"cv_simd_avg_sc_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_QI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_avgu_h_si,		"cv_simd_avgu_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_avgu_b_si,		"cv_simd_avgu_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_avgu_sc_h_si,		"cv_simd_avgu_sc_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_UHI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_avgu_sc_b_si,		"cv_simd_avgu_sc_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_UQI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_min_h_si,		"cv_simd_min_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_min_b_si,		"cv_simd_min_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_min_sc_h_si,		"cv_simd_min_sc_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_HI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_min_sc_b_si,		"cv_simd_min_sc_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_QI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_minu_h_si,		"cv_simd_minu_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_minu_b_si,		"cv_simd_minu_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_minu_sc_h_si,		"cv_simd_minu_sc_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_UHI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_minu_sc_b_si,		"cv_simd_minu_sc_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_UQI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_max_h_si,		"cv_simd_max_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_max_b_si,		"cv_simd_max_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_max_sc_h_si,		"cv_simd_max_sc_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_HI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_max_sc_b_si,		"cv_simd_max_sc_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_QI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_maxu_h_si,		"cv_simd_maxu_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_maxu_b_si,		"cv_simd_maxu_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_maxu_sc_h_si,		"cv_simd_maxu_sc_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_UHI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_maxu_sc_b_si,		"cv_simd_maxu_sc_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_UQI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_srl_h_si,		"cv_simd_srl_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_srl_b_si,		"cv_simd_srl_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_srl_sc_h_si,		"cv_simd_srl_sc_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_HI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_srl_sc_b_si,		"cv_simd_srl_sc_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_QI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_sra_h_si,		"cv_simd_sra_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_sra_b_si,		"cv_simd_sra_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_sra_sc_h_si,		"cv_simd_sra_sc_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_HI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_sra_sc_b_si,		"cv_simd_sra_sc_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_QI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_sll_h_si,		"cv_simd_sll_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_sll_b_si,		"cv_simd_sll_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_sll_sc_h_si,		"cv_simd_sll_sc_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_HI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_sll_sc_b_si,		"cv_simd_sll_sc_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_QI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_or_h_si,			"cv_simd_or_h",		RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_or_b_si,			"cv_simd_or_b",		RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_or_sc_h_si,		"cv_simd_or_sc_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_HI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_or_sc_b_si,		"cv_simd_or_sc_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_QI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_xor_h_si,		"cv_simd_xor_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_xor_b_si,		"cv_simd_xor_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_xor_sc_h_si,		"cv_simd_xor_sc_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_HI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_xor_sc_b_si,		"cv_simd_xor_sc_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_QI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_and_h_si,		"cv_simd_and_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_and_b_si,		"cv_simd_and_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_and_sc_h_si,		"cv_simd_and_sc_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_HI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_and_sc_b_si,		"cv_simd_and_sc_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_QI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_abs_h_si,		"cv_simd_abs_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_abs_b_si,		"cv_simd_abs_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_neg_h_si,                "cv_simd_neg_h",        RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI,              cvsimd),
-RISCV_BUILTIN (cv_simd_neg_b_si,                "cv_simd_neg_b",        RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI,              cvsimd),
+RISCV_BUILTIN (cv_simd_add_h_si,		"cv_simd_add_h",	RISCV_USI_FTYPE_USI_USI_UQI, 	cvsimd),
+RISCV_BUILTIN (cv_simd_add_b_si,		"cv_simd_add_b",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_add_sc_h_si,		"cv_simd_add_sc_h",	RISCV_USI_FTYPE_USI_HI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_add_sc_b_si,		"cv_simd_add_sc_b",	RISCV_USI_FTYPE_USI_QI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_sub_h_si,		"cv_simd_sub_h",	RISCV_USI_FTYPE_USI_USI_UQI, 	cvsimd),
+RISCV_BUILTIN (cv_simd_sub_b_si,		"cv_simd_sub_b",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_sub_sc_h_si,		"cv_simd_sub_sc_h",	RISCV_USI_FTYPE_USI_HI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_sub_sc_b_si,		"cv_simd_sub_sc_b",	RISCV_USI_FTYPE_USI_QI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_avg_h_si,		"cv_simd_avg_h",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_avg_b_si,		"cv_simd_avg_b",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_avg_sc_h_si,		"cv_simd_avg_sc_h",	RISCV_USI_FTYPE_USI_HI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_avg_sc_b_si,		"cv_simd_avg_sc_b",	RISCV_USI_FTYPE_USI_QI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_avgu_h_si,		"cv_simd_avgu_h",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_avgu_b_si,		"cv_simd_avgu_b",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_avgu_sc_h_si,		"cv_simd_avgu_sc_h",	RISCV_USI_FTYPE_USI_UHI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_avgu_sc_b_si,		"cv_simd_avgu_sc_b",	RISCV_USI_FTYPE_USI_UQI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_min_h_si,		"cv_simd_min_h",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_min_b_si,		"cv_simd_min_b",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_min_sc_h_si,		"cv_simd_min_sc_h",	RISCV_USI_FTYPE_USI_HI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_min_sc_b_si,		"cv_simd_min_sc_b",	RISCV_USI_FTYPE_USI_QI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_minu_h_si,		"cv_simd_minu_h",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_minu_b_si,		"cv_simd_minu_b",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_minu_sc_h_si,		"cv_simd_minu_sc_h",	RISCV_USI_FTYPE_USI_UHI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_minu_sc_b_si,		"cv_simd_minu_sc_b",	RISCV_USI_FTYPE_USI_UQI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_max_h_si,		"cv_simd_max_h",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_max_b_si,		"cv_simd_max_b",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_max_sc_h_si,		"cv_simd_max_sc_h",	RISCV_USI_FTYPE_USI_HI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_max_sc_b_si,		"cv_simd_max_sc_b",	RISCV_USI_FTYPE_USI_QI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_maxu_h_si,		"cv_simd_maxu_h",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_maxu_b_si,		"cv_simd_maxu_b",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_maxu_sc_h_si,		"cv_simd_maxu_sc_h",	RISCV_USI_FTYPE_USI_UHI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_maxu_sc_b_si,		"cv_simd_maxu_sc_b",	RISCV_USI_FTYPE_USI_UQI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_srl_h_si,		"cv_simd_srl_h",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_srl_b_si,		"cv_simd_srl_b",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_srl_sc_h_si,		"cv_simd_srl_sc_h",	RISCV_USI_FTYPE_USI_HI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_srl_sc_b_si,		"cv_simd_srl_sc_b",	RISCV_USI_FTYPE_USI_QI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_sra_h_si,		"cv_simd_sra_h",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_sra_b_si,		"cv_simd_sra_b",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_sra_sc_h_si,		"cv_simd_sra_sc_h",	RISCV_USI_FTYPE_USI_HI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_sra_sc_b_si,		"cv_simd_sra_sc_b",	RISCV_USI_FTYPE_USI_QI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_sll_h_si,		"cv_simd_sll_h",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_sll_b_si,		"cv_simd_sll_b",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_sll_sc_h_si,		"cv_simd_sll_sc_h",	RISCV_USI_FTYPE_USI_HI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_sll_sc_b_si,		"cv_simd_sll_sc_b",	RISCV_USI_FTYPE_USI_QI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_or_h_si,			"cv_simd_or_h",		RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_or_b_si,			"cv_simd_or_b",		RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_or_sc_h_si,		"cv_simd_or_sc_h",	RISCV_USI_FTYPE_USI_HI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_or_sc_b_si,		"cv_simd_or_sc_b",	RISCV_USI_FTYPE_USI_QI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_xor_h_si,		"cv_simd_xor_h",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_xor_b_si,		"cv_simd_xor_b",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_xor_sc_h_si,		"cv_simd_xor_sc_h",	RISCV_USI_FTYPE_USI_HI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_xor_sc_b_si,		"cv_simd_xor_sc_b",	RISCV_USI_FTYPE_USI_QI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_and_h_si,		"cv_simd_and_h",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_and_b_si,		"cv_simd_and_b",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_and_sc_h_si,		"cv_simd_and_sc_h",	RISCV_USI_FTYPE_USI_HI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_and_sc_b_si,		"cv_simd_and_sc_b",	RISCV_USI_FTYPE_USI_QI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_abs_h_si,		"cv_simd_abs_h",	RISCV_USI_FTYPE_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_abs_b_si,		"cv_simd_abs_b",	RISCV_USI_FTYPE_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_neg_h_si,                "cv_simd_neg_h",        RISCV_USI_FTYPE_USI,              cvsimd),
+RISCV_BUILTIN (cv_simd_neg_b_si,                "cv_simd_neg_b",        RISCV_USI_FTYPE_USI,              cvsimd),
 //BIT MANIPULATION
-RISCV_BUILTIN (cv_simd_extract_h_si,		"cv_simd_extract_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_QI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_extract_b_si,		"cv_simd_extract_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_QI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_extractu_h_si,		"cv_simd_extractu_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_QI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_extractu_b_si,		"cv_simd_extractu_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_QI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_insert_h_si,		"cv_simd_insert_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_QI, 	cvsimd),
-RISCV_BUILTIN (cv_simd_insert_b_si,		"cv_simd_insert_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_QI, 	cvsimd),
+RISCV_BUILTIN (cv_simd_extract_h_si,		"cv_simd_extract_h",	RISCV_USI_FTYPE_USI_QI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_extract_b_si,		"cv_simd_extract_b",	RISCV_USI_FTYPE_USI_QI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_extractu_h_si,		"cv_simd_extractu_h",	RISCV_USI_FTYPE_USI_QI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_extractu_b_si,		"cv_simd_extractu_b",	RISCV_USI_FTYPE_USI_QI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_insert_h_si,		"cv_simd_insert_h",	RISCV_USI_FTYPE_USI_USI_QI, 	cvsimd),
+RISCV_BUILTIN (cv_simd_insert_b_si,		"cv_simd_insert_b",	RISCV_USI_FTYPE_USI_USI_QI, 	cvsimd),
 //DOT PRODUCT
-RISCV_BUILTIN (cv_simd_dotup_h_si,		"cv_simd_dotup_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_dotup_b_si,		"cv_simd_dotup_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_dotup_sc_h_si,		"cv_simd_dotup_sc_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_UHI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_dotup_sc_b_si,		"cv_simd_dotup_sc_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_UQI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_dotusp_h_si,		"cv_simd_dotusp_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_dotusp_b_si,		"cv_simd_dotusp_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_dotusp_sc_h_si,		"cv_simd_dotusp_sc_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_HI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_dotusp_sc_b_si,		"cv_simd_dotusp_sc_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_QI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_dotsp_h_si,		"cv_simd_dotsp_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_dotsp_b_si,		"cv_simd_dotsp_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_dotsp_sc_h_si,		"cv_simd_dotsp_sc_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_HI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_dotsp_sc_b_si,		"cv_simd_dotsp_sc_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_QI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_sdotup_h_si,		"cv_simd_sdotup_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_USI, 	cvsimd),
-RISCV_BUILTIN (cv_simd_sdotup_b_si,		"cv_simd_sdotup_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_USI, 	cvsimd),
-RISCV_BUILTIN (cv_simd_sdotup_sc_h_si,		"cv_simd_sdotup_sc_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_UHI_USI, 	cvsimd),
-RISCV_BUILTIN (cv_simd_sdotup_sc_b_si,		"cv_simd_sdotup_sc_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_UQI_USI, 	cvsimd),
-RISCV_BUILTIN (cv_simd_sdotusp_h_si,		"cv_simd_sdotusp_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_USI, 	cvsimd),
-RISCV_BUILTIN (cv_simd_sdotusp_b_si,		"cv_simd_sdotusp_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_USI, 	cvsimd),
-RISCV_BUILTIN (cv_simd_sdotusp_sc_h_si,		"cv_simd_sdotusp_sc_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_HI_USI, 	cvsimd),
-RISCV_BUILTIN (cv_simd_sdotusp_sc_b_si,		"cv_simd_sdotusp_sc_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_QI_USI, 	cvsimd),
-RISCV_BUILTIN (cv_simd_sdotsp_h_si,		"cv_simd_sdotsp_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_USI, 	cvsimd),
-RISCV_BUILTIN (cv_simd_sdotsp_b_si,		"cv_simd_sdotsp_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_USI, 	cvsimd),
-RISCV_BUILTIN (cv_simd_sdotsp_sc_h_si,		"cv_simd_sdotsp_sc_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_HI_USI, 	cvsimd),
-RISCV_BUILTIN (cv_simd_sdotsp_sc_b_si,		"cv_simd_sdotsp_sc_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_QI_USI, 	cvsimd),
+RISCV_BUILTIN (cv_simd_dotup_h_si,		"cv_simd_dotup_h",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_dotup_b_si,		"cv_simd_dotup_b",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_dotup_sc_h_si,		"cv_simd_dotup_sc_h",	RISCV_USI_FTYPE_USI_UHI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_dotup_sc_b_si,		"cv_simd_dotup_sc_b",	RISCV_USI_FTYPE_USI_UQI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_dotusp_h_si,		"cv_simd_dotusp_h",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_dotusp_b_si,		"cv_simd_dotusp_b",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_dotusp_sc_h_si,		"cv_simd_dotusp_sc_h",	RISCV_USI_FTYPE_USI_HI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_dotusp_sc_b_si,		"cv_simd_dotusp_sc_b",	RISCV_USI_FTYPE_USI_QI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_dotsp_h_si,		"cv_simd_dotsp_h",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_dotsp_b_si,		"cv_simd_dotsp_b",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_dotsp_sc_h_si,		"cv_simd_dotsp_sc_h",	RISCV_USI_FTYPE_USI_HI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_dotsp_sc_b_si,		"cv_simd_dotsp_sc_b",	RISCV_USI_FTYPE_USI_QI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_sdotup_h_si,		"cv_simd_sdotup_h",	RISCV_USI_FTYPE_USI_USI_USI, 	cvsimd),
+RISCV_BUILTIN (cv_simd_sdotup_b_si,		"cv_simd_sdotup_b",	RISCV_USI_FTYPE_USI_USI_USI, 	cvsimd),
+RISCV_BUILTIN (cv_simd_sdotup_sc_h_si,		"cv_simd_sdotup_sc_h",	RISCV_USI_FTYPE_USI_UHI_USI, 	cvsimd),
+RISCV_BUILTIN (cv_simd_sdotup_sc_b_si,		"cv_simd_sdotup_sc_b",	RISCV_USI_FTYPE_USI_UQI_USI, 	cvsimd),
+RISCV_BUILTIN (cv_simd_sdotusp_h_si,		"cv_simd_sdotusp_h",	RISCV_USI_FTYPE_USI_USI_USI, 	cvsimd),
+RISCV_BUILTIN (cv_simd_sdotusp_b_si,		"cv_simd_sdotusp_b",	RISCV_USI_FTYPE_USI_USI_USI, 	cvsimd),
+RISCV_BUILTIN (cv_simd_sdotusp_sc_h_si,		"cv_simd_sdotusp_sc_h",	RISCV_USI_FTYPE_USI_HI_USI, 	cvsimd),
+RISCV_BUILTIN (cv_simd_sdotusp_sc_b_si,		"cv_simd_sdotusp_sc_b",	RISCV_USI_FTYPE_USI_QI_USI, 	cvsimd),
+RISCV_BUILTIN (cv_simd_sdotsp_h_si,		"cv_simd_sdotsp_h",	RISCV_USI_FTYPE_USI_USI_USI, 	cvsimd),
+RISCV_BUILTIN (cv_simd_sdotsp_b_si,		"cv_simd_sdotsp_b",	RISCV_USI_FTYPE_USI_USI_USI, 	cvsimd),
+RISCV_BUILTIN (cv_simd_sdotsp_sc_h_si,		"cv_simd_sdotsp_sc_h",	RISCV_USI_FTYPE_USI_HI_USI, 	cvsimd),
+RISCV_BUILTIN (cv_simd_sdotsp_sc_b_si,		"cv_simd_sdotsp_sc_b",	RISCV_USI_FTYPE_USI_QI_USI, 	cvsimd),
 //SHUFFLE AND PACK
-RISCV_BUILTIN (cv_simd_shuffle_h_si,		"cv_simd_shuffle_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_shuffle_sci_h_si,	"cv_simd_shuffle_sci_h",RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_UQI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_shuffle_b_si,		"cv_simd_shuffle_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_shuffle_sci_b_si,	"cv_simd_shuffle_sci_b",RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_UQI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_shuffle2_h_si,		"cv_simd_shuffle2_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_USI, 	cvsimd),
-RISCV_BUILTIN (cv_simd_shuffle2_b_si,		"cv_simd_shuffle2_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_USI, 	cvsimd),
-RISCV_BUILTIN (cv_simd_packhi_h_si,		"cv_simd_packhi_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI,  	cvsimd),
-RISCV_BUILTIN (cv_simd_packlo_h_si,		"cv_simd_packlo_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI,  	cvsimd),
-RISCV_BUILTIN (cv_simd_packhi_b_si,		"cv_simd_packhi_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_USI,  	cvsimd),
-RISCV_BUILTIN (cv_simd_packlo_b_si,		"cv_simd_packlo_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_USI,  	cvsimd),
-//RISCV_BUILTIN (cv_simd_pack_si,		"cv_simd_pack",		RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-//RISCV_BUILTIN (cv_simd_pack_h_si,		"cv_simd_pack_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-//RISCV_BUILTIN (cv_simd_packhi_b_si,		"cv_simd_packhi_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_USI, 	cvsimd),
-//RISCV_BUILTIN (cv_simd_packlo_b_si,		"cv_simd_packlo_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_USI, 	cvsimd),
+RISCV_BUILTIN (cv_simd_shuffle_h_si,		"cv_simd_shuffle_h",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_shuffle_sci_h_si,	"cv_simd_shuffle_sci_h",RISCV_USI_FTYPE_USI_UQI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_shuffle_b_si,		"cv_simd_shuffle_b",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_shuffle_sci_b_si,	"cv_simd_shuffle_sci_b",RISCV_USI_FTYPE_USI_UQI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_shuffle2_h_si,		"cv_simd_shuffle2_h",	RISCV_USI_FTYPE_USI_USI_USI, 	cvsimd),
+RISCV_BUILTIN (cv_simd_shuffle2_b_si,		"cv_simd_shuffle2_b",	RISCV_USI_FTYPE_USI_USI_USI, 	cvsimd),
+RISCV_BUILTIN (cv_simd_packhi_h_si,		"cv_simd_packhi_h",	RISCV_USI_FTYPE_USI_USI,  	cvsimd),
+RISCV_BUILTIN (cv_simd_packlo_h_si,		"cv_simd_packlo_h",	RISCV_USI_FTYPE_USI_USI,  	cvsimd),
+RISCV_BUILTIN (cv_simd_packhi_b_si,		"cv_simd_packhi_b",	RISCV_USI_FTYPE_USI_USI_USI,  	cvsimd),
+RISCV_BUILTIN (cv_simd_packlo_b_si,		"cv_simd_packlo_b",	RISCV_USI_FTYPE_USI_USI_USI,  	cvsimd),
+//RISCV_BUILTIN (cv_simd_pack_si,		"cv_simd_pack",		RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+//RISCV_BUILTIN (cv_simd_pack_h_si,		"cv_simd_pack_h",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+//RISCV_BUILTIN (cv_simd_packhi_b_si,		"cv_simd_packhi_b",	RISCV_USI_FTYPE_USI_USI_USI, 	cvsimd),
+//RISCV_BUILTIN (cv_simd_packlo_b_si,		"cv_simd_packlo_b",	RISCV_USI_FTYPE_USI_USI_USI, 	cvsimd),
 //COMPARISON OPERATIONS
-RISCV_BUILTIN (cv_simd_cmpeq_h_si,		"cv_simd_cmpeq_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmpeq_b_si,		"cv_simd_cmpeq_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmpeq_sc_h_si,		"cv_simd_cmpeq_sc_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_HI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmpeq_sc_b_si,		"cv_simd_cmpeq_sc_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_QI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmpne_h_si,		"cv_simd_cmpne_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmpne_b_si,		"cv_simd_cmpne_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmpne_sc_h_si,		"cv_simd_cmpne_sc_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_HI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmpne_sc_b_si,		"cv_simd_cmpne_sc_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_QI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmpgt_h_si,		"cv_simd_cmpgt_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmpgt_b_si,		"cv_simd_cmpgt_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmpgt_sc_h_si,		"cv_simd_cmpgt_sc_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_HI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmpgt_sc_b_si,		"cv_simd_cmpgt_sc_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_QI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmpge_h_si,		"cv_simd_cmpge_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmpge_b_si,		"cv_simd_cmpge_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmpge_sc_h_si,		"cv_simd_cmpge_sc_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_HI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmpge_sc_b_si,		"cv_simd_cmpge_sc_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_QI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmplt_h_si,		"cv_simd_cmplt_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmplt_b_si,		"cv_simd_cmplt_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmplt_sc_h_si,		"cv_simd_cmplt_sc_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_HI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmplt_sc_b_si,		"cv_simd_cmplt_sc_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_QI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmple_h_si,		"cv_simd_cmple_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmple_b_si,		"cv_simd_cmple_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmple_sc_h_si,		"cv_simd_cmple_sc_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_HI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmple_sc_b_si,		"cv_simd_cmple_sc_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_QI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmpgtu_h_si,		"cv_simd_cmpgtu_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmpgtu_b_si,		"cv_simd_cmpgtu_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmpgtu_sc_h_si,		"cv_simd_cmpgtu_sc_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_UHI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmpgtu_sc_b_si,		"cv_simd_cmpgtu_sc_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_UQI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmpgeu_h_si,		"cv_simd_cmpgeu_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmpgeu_b_si,		"cv_simd_cmpgeu_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmpgeu_sc_h_si,		"cv_simd_cmpgeu_sc_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_UHI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmpgeu_sc_b_si,		"cv_simd_cmpgeu_sc_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_UQI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmpltu_h_si,		"cv_simd_cmpltu_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmpltu_b_si,		"cv_simd_cmpltu_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmpltu_sc_h_si,		"cv_simd_cmpltu_sc_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_UHI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmpltu_sc_b_si,		"cv_simd_cmpltu_sc_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_UQI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmpleu_h_si,		"cv_simd_cmpleu_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmpleu_b_si,		"cv_simd_cmpleu_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmpleu_sc_h_si,		"cv_simd_cmpleu_sc_h",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_UHI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_cmpleu_sc_b_si,		"cv_simd_cmpleu_sc_b",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_UQI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmpeq_h_si,		"cv_simd_cmpeq_h",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmpeq_b_si,		"cv_simd_cmpeq_b",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmpeq_sc_h_si,		"cv_simd_cmpeq_sc_h",	RISCV_USI_FTYPE_USI_HI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmpeq_sc_b_si,		"cv_simd_cmpeq_sc_b",	RISCV_USI_FTYPE_USI_QI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmpne_h_si,		"cv_simd_cmpne_h",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmpne_b_si,		"cv_simd_cmpne_b",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmpne_sc_h_si,		"cv_simd_cmpne_sc_h",	RISCV_USI_FTYPE_USI_HI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmpne_sc_b_si,		"cv_simd_cmpne_sc_b",	RISCV_USI_FTYPE_USI_QI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmpgt_h_si,		"cv_simd_cmpgt_h",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmpgt_b_si,		"cv_simd_cmpgt_b",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmpgt_sc_h_si,		"cv_simd_cmpgt_sc_h",	RISCV_USI_FTYPE_USI_HI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmpgt_sc_b_si,		"cv_simd_cmpgt_sc_b",	RISCV_USI_FTYPE_USI_QI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmpge_h_si,		"cv_simd_cmpge_h",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmpge_b_si,		"cv_simd_cmpge_b",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmpge_sc_h_si,		"cv_simd_cmpge_sc_h",	RISCV_USI_FTYPE_USI_HI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmpge_sc_b_si,		"cv_simd_cmpge_sc_b",	RISCV_USI_FTYPE_USI_QI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmplt_h_si,		"cv_simd_cmplt_h",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmplt_b_si,		"cv_simd_cmplt_b",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmplt_sc_h_si,		"cv_simd_cmplt_sc_h",	RISCV_USI_FTYPE_USI_HI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmplt_sc_b_si,		"cv_simd_cmplt_sc_b",	RISCV_USI_FTYPE_USI_QI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmple_h_si,		"cv_simd_cmple_h",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmple_b_si,		"cv_simd_cmple_b",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmple_sc_h_si,		"cv_simd_cmple_sc_h",	RISCV_USI_FTYPE_USI_HI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmple_sc_b_si,		"cv_simd_cmple_sc_b",	RISCV_USI_FTYPE_USI_QI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmpgtu_h_si,		"cv_simd_cmpgtu_h",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmpgtu_b_si,		"cv_simd_cmpgtu_b",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmpgtu_sc_h_si,		"cv_simd_cmpgtu_sc_h",	RISCV_USI_FTYPE_USI_UHI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmpgtu_sc_b_si,		"cv_simd_cmpgtu_sc_b",	RISCV_USI_FTYPE_USI_UQI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmpgeu_h_si,		"cv_simd_cmpgeu_h",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmpgeu_b_si,		"cv_simd_cmpgeu_b",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmpgeu_sc_h_si,		"cv_simd_cmpgeu_sc_h",	RISCV_USI_FTYPE_USI_UHI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmpgeu_sc_b_si,		"cv_simd_cmpgeu_sc_b",	RISCV_USI_FTYPE_USI_UQI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmpltu_h_si,		"cv_simd_cmpltu_h",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmpltu_b_si,		"cv_simd_cmpltu_b",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmpltu_sc_h_si,		"cv_simd_cmpltu_sc_h",	RISCV_USI_FTYPE_USI_UHI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmpltu_sc_b_si,		"cv_simd_cmpltu_sc_b",	RISCV_USI_FTYPE_USI_UQI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmpleu_h_si,		"cv_simd_cmpleu_h",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmpleu_b_si,		"cv_simd_cmpleu_b",	RISCV_USI_FTYPE_USI_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmpleu_sc_h_si,		"cv_simd_cmpleu_sc_h",	RISCV_USI_FTYPE_USI_UHI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_cmpleu_sc_b_si,		"cv_simd_cmpleu_sc_b",	RISCV_USI_FTYPE_USI_UQI, 		cvsimd),
 //COMPLEX NUMBER
-RISCV_BUILTIN (cv_simd_cplxmul_r_si,		"cv_simd_cplxmul_r",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_USI_UQI, 	cvsimd),
-RISCV_BUILTIN (cv_simd_cplxmul_i_si,		"cv_simd_cplxmul_i",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_USI_UQI, 	cvsimd),
-RISCV_BUILTIN (cv_simd_cplxconj_si,		"cv_simd_cplxconj",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI, 		cvsimd),
-RISCV_BUILTIN (cv_simd_subrotmj_si,		"cv_simd_subrotmj",	RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_UQI, 	cvsimd),
+RISCV_BUILTIN (cv_simd_cplxmul_r_si,		"cv_simd_cplxmul_r",	RISCV_USI_FTYPE_USI_USI_USI_UQI, 	cvsimd),
+RISCV_BUILTIN (cv_simd_cplxmul_i_si,		"cv_simd_cplxmul_i",	RISCV_USI_FTYPE_USI_USI_USI_UQI, 	cvsimd),
+RISCV_BUILTIN (cv_simd_cplxconj_si,		"cv_simd_cplxconj",	RISCV_USI_FTYPE_USI, 		cvsimd),
+RISCV_BUILTIN (cv_simd_subrotmj_si,		"cv_simd_subrotmj",	RISCV_USI_FTYPE_USI_USI_UQI, 	cvsimd),
diff --git a/gcc/config/riscv/riscv-builtins.cc b/gcc/config/riscv/riscv-builtins.cc
index 8c57fbb1aaa..997e637be91 100644
--- a/gcc/config/riscv/riscv-builtins.cc
+++ b/gcc/config/riscv/riscv-builtins.cc
@@ -58,15 +58,6 @@ enum riscv_function_type {
   RISCV_MAX_FTYPE_MAX
 };
 
-/* Specifies how a built-in function should be converted into rtl.  */
-enum riscv_builtin_type {
-  /* The function corresponds directly to an .md pattern.  */
-  RISCV_BUILTIN_DIRECT,
-
-  /* Likewise, but with return type VOID.  */
-  RISCV_BUILTIN_DIRECT_NO_TARGET
-};
-
 /* Declare an availability predicate for built-in functions.  */
 #define AVAIL(NAME, COND)		\
  static unsigned int			\
@@ -77,18 +68,18 @@ enum riscv_builtin_type {
 
 /* This structure describes a single built-in function.  */
 struct riscv_builtin_description {
+  /* The name of the built-in function.  */
+  const char *name;
+
   /* The code of the main .md file instruction.  See riscv_builtin_type
      for more information.  */
   enum insn_code icode;
 
-  /* The name of the built-in function.  */
-  const char *name;
-
-  /* Specifies how the function should be expanded.  */
-  enum riscv_builtin_type builtin_type;
-
   /* The function's prototype.  */
-  enum riscv_function_type prototype;
+  enum riscv_function_type prototype : 24;
+
+  /* True, if the function returns void (and so expansion has no target RTL).  */
+  bool no_target : 8;
 
   /* Whether the function is available.  */
   unsigned int (*avail) (void);
@@ -142,50 +133,33 @@ AVAIL (andesperf32, !TARGET_64BIT && TARGET_XANDESPERF)
 AVAIL (andesperf64, TARGET_64BIT && TARGET_XANDESPERF)
 AVAIL (andesbfhcvt, TARGET_XANDESBFHCVT)
 
-/* Construct a riscv_builtin_description from the given arguments.
-
-   INSN is the name of the associated instruction pattern, without the
-   leading CODE_FOR_riscv_.
+/* Construct a riscv_builtin_description from the given arguments like RISCV_BUILTIN.
 
    NAME is the name of the function itself, without the leading
    "__builtin_riscv_".
 
-   BUILTIN_TYPE and FUNCTION_TYPE are riscv_builtin_description fields.
-
-   AVAIL is the name of the availability predicate, without the leading
-   riscv_builtin_avail_.  */
-#define RISCV_BUILTIN(INSN, NAME, BUILTIN_TYPE,	FUNCTION_TYPE, AVAIL)	\
-  { CODE_FOR_riscv_ ## INSN, "__builtin_riscv_" NAME,			\
-    BUILTIN_TYPE, FUNCTION_TYPE, riscv_builtin_avail_ ## AVAIL }
-
-/* Construct a riscv_builtin_description from the given arguments like RISCV_BUILTIN.
-
    INSN is the name of the associated instruction pattern, without the
    leading CODE_FOR_.
 
-   NAME is the name of the function itself, without the leading
-   "__builtin_riscv_".
-
-   BUILTIN_TYPE and FUNCTION_TYPE are riscv_builtin_description fields.
+   FUNCTION_TYPE is the builtin type enumerator.
 
    AVAIL is the name of the availability predicate, without the leading
    riscv_builtin_avail_.  */
-#define RISCV_BUILTIN_NO_PREFIX(INSN, NAME, BUILTIN_TYPE,	FUNCTION_TYPE, AVAIL)	\
-  { CODE_FOR_ ## INSN, "__builtin_riscv_" NAME,			\
-    BUILTIN_TYPE, FUNCTION_TYPE, riscv_builtin_avail_ ## AVAIL }
+#define RISCV_BUILTIN_NO_PREFIX(INSN, NAME, FUNCTION_TYPE, AVAIL)	\
+  { "__builtin_riscv_" NAME, CODE_FOR_ ## INSN,				\
+      FUNCTION_TYPE, false, riscv_builtin_avail_ ## AVAIL }
 
-/* Define __builtin_riscv_<INSN>, which is a RISCV_BUILTIN_DIRECT function
-   mapped to instruction CODE_FOR_riscv_<INSN>,  FUNCTION_TYPE and AVAIL
-   are as for RISCV_BUILTIN.  */
+/* Like RISCV_BUiLTIN_NO_PREFIX but with a 'riscv_' prefix added to the
+   instruction code.  */
+#define RISCV_BUILTIN(INSN, NAME, FUNCTION_TYPE, AVAIL)			\
+  RISCV_BUILTIN_NO_PREFIX (riscv_ ## INSN, NAME, FUNCTION_TYPE, AVAIL)
+
+/* Define __builtin_riscv_<INSN>, which is builtin function mapped to
+   instruction CODE_FOR_riscv_<INSN>, FUNCTION_TYPE and AVAIL are as for
+   RISCV_BUILTIN.  */
 #define DIRECT_BUILTIN(INSN, FUNCTION_TYPE, AVAIL)			\
-  RISCV_BUILTIN (INSN, #INSN, RISCV_BUILTIN_DIRECT, FUNCTION_TYPE, AVAIL)
+  RISCV_BUILTIN (INSN, #INSN, FUNCTION_TYPE, AVAIL)
 
-/* Define __builtin_riscv_<INSN>, which is a RISCV_BUILTIN_DIRECT_NO_TARGET
-   function mapped to instruction CODE_FOR_riscv_<INSN>,  FUNCTION_TYPE
-   and AVAIL are as for RISCV_BUILTIN.  */
-#define DIRECT_NO_TARGET_BUILTIN(INSN, FUNCTION_TYPE, AVAIL)		\
-  RISCV_BUILTIN (INSN, #INSN, RISCV_BUILTIN_DIRECT_NO_TARGET,		\
-		FUNCTION_TYPE, AVAIL)
 
 /* Argument types.  */
 #define RISCV_ATYPE_VOID void_type_node
@@ -216,15 +190,15 @@ AVAIL (andesbfhcvt, TARGET_XANDESBFHCVT)
   RISCV_ATYPE_##A, RISCV_ATYPE_##B, RISCV_ATYPE_##C, RISCV_ATYPE_##D, \
   RISCV_ATYPE_##E
 
-static const struct riscv_builtin_description riscv_builtins[] = {
+static struct riscv_builtin_description riscv_builtins[] = {
   #include "riscv-cmo.def"
   #include "riscv-scalar-crypto.def"
   #include "corev.def"
   #include "andes.def"
 
   DIRECT_BUILTIN (frflags, RISCV_USI_FTYPE, hard_float),
-  DIRECT_NO_TARGET_BUILTIN (fsflags, RISCV_VOID_FTYPE_USI, hard_float),
-  RISCV_BUILTIN (pause, "pause", RISCV_BUILTIN_DIRECT_NO_TARGET, RISCV_VOID_FTYPE, hint_pause),
+  DIRECT_BUILTIN (fsflags, RISCV_VOID_FTYPE_USI, hard_float),
+  RISCV_BUILTIN (pause, "pause", RISCV_VOID_FTYPE, hint_pause),
 };
 
 /* Index I is the function declaration for riscv_builtins[I], or null if the
@@ -310,10 +284,12 @@ riscv_init_builtins (void)
 
   for (size_t i = 0; i < ARRAY_SIZE (riscv_builtins); i++)
     {
-      const struct riscv_builtin_description *d = &riscv_builtins[i];
+      struct riscv_builtin_description *d = &riscv_builtins[i];
       if (d->avail ())
 	{
 	  tree type = riscv_build_function_type (d->prototype);
+	  if (VOID_TYPE_P (TREE_TYPE (type)))
+	    d->no_target = true;
 	  riscv_builtin_decls[i]
 	    = add_builtin_function (d->name, type,
 				    (i << RISCV_BUILTIN_SHIFT)
@@ -443,14 +419,7 @@ riscv_expand_builtin (tree exp, rtx target, rtx subtarget ATTRIBUTE_UNUSED,
       case RISCV_BUILTIN_GENERAL: {
 	const struct riscv_builtin_description *d = &riscv_builtins[subcode];
 
-	switch (d->builtin_type)
-	  {
-	  case RISCV_BUILTIN_DIRECT:
-	    return riscv_expand_builtin_direct (d->icode, target, exp, true);
-
-	  case RISCV_BUILTIN_DIRECT_NO_TARGET:
-	    return riscv_expand_builtin_direct (d->icode, target, exp, false);
-	  }
+	return riscv_expand_builtin_direct (d->icode, target, exp, !d->no_target);
       }
     }
 
diff --git a/gcc/config/riscv/riscv-cmo.def b/gcc/config/riscv/riscv-cmo.def
index 78cf1d84070..f3c7fbd72e3 100644
--- a/gcc/config/riscv/riscv-cmo.def
+++ b/gcc/config/riscv/riscv-cmo.def
@@ -1,27 +1,27 @@
 // zicbom
-RISCV_BUILTIN (clean_si, "zicbom_cbo_clean", RISCV_BUILTIN_DIRECT_NO_TARGET, RISCV_VOID_FTYPE_VOID_PTR, clean32),
-RISCV_BUILTIN (clean_di, "zicbom_cbo_clean", RISCV_BUILTIN_DIRECT_NO_TARGET, RISCV_VOID_FTYPE_VOID_PTR, clean64),
+RISCV_BUILTIN (clean_si, "zicbom_cbo_clean", RISCV_VOID_FTYPE_VOID_PTR, clean32),
+RISCV_BUILTIN (clean_di, "zicbom_cbo_clean", RISCV_VOID_FTYPE_VOID_PTR, clean64),
 
-RISCV_BUILTIN (flush_si, "zicbom_cbo_flush", RISCV_BUILTIN_DIRECT_NO_TARGET, RISCV_VOID_FTYPE_VOID_PTR, flush32),
-RISCV_BUILTIN (flush_di, "zicbom_cbo_flush", RISCV_BUILTIN_DIRECT_NO_TARGET, RISCV_VOID_FTYPE_VOID_PTR, flush64),
+RISCV_BUILTIN (flush_si, "zicbom_cbo_flush", RISCV_VOID_FTYPE_VOID_PTR, flush32),
+RISCV_BUILTIN (flush_di, "zicbom_cbo_flush", RISCV_VOID_FTYPE_VOID_PTR, flush64),
 
-RISCV_BUILTIN (inval_si, "zicbom_cbo_inval", RISCV_BUILTIN_DIRECT_NO_TARGET, RISCV_VOID_FTYPE_VOID_PTR, inval32),
-RISCV_BUILTIN (inval_di, "zicbom_cbo_inval", RISCV_BUILTIN_DIRECT_NO_TARGET, RISCV_VOID_FTYPE_VOID_PTR, inval64),
+RISCV_BUILTIN (inval_si, "zicbom_cbo_inval", RISCV_VOID_FTYPE_VOID_PTR, inval32),
+RISCV_BUILTIN (inval_di, "zicbom_cbo_inval", RISCV_VOID_FTYPE_VOID_PTR, inval64),
 
 // zicboz
-RISCV_BUILTIN (zero_si, "zicboz_cbo_zero", RISCV_BUILTIN_DIRECT_NO_TARGET, RISCV_VOID_FTYPE_VOID_PTR, zero32),
-RISCV_BUILTIN (zero_di, "zicboz_cbo_zero", RISCV_BUILTIN_DIRECT_NO_TARGET, RISCV_VOID_FTYPE_VOID_PTR, zero64),
+RISCV_BUILTIN (zero_si, "zicboz_cbo_zero", RISCV_VOID_FTYPE_VOID_PTR, zero32),
+RISCV_BUILTIN (zero_di, "zicboz_cbo_zero", RISCV_VOID_FTYPE_VOID_PTR, zero64),
 
 // zicbop
-RISCV_BUILTIN (prefetchi_si, "zicbop_cbo_prefetchi", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI, prefetchi32),
-RISCV_BUILTIN (prefetchi_di, "zicbop_cbo_prefetchi", RISCV_BUILTIN_DIRECT, RISCV_UDI_FTYPE_UDI, prefetchi64),
+RISCV_BUILTIN (prefetchi_si, "zicbop_cbo_prefetchi", RISCV_USI_FTYPE_USI, prefetchi32),
+RISCV_BUILTIN (prefetchi_di, "zicbop_cbo_prefetchi", RISCV_UDI_FTYPE_UDI, prefetchi64),
 
 // zbkc or zbc
-RISCV_BUILTIN (clmul_si, "clmul_32", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, clmul_zbkc_or_zbc),
-RISCV_BUILTIN (clmul_di, "clmul_64", RISCV_BUILTIN_DIRECT, RISCV_UDI_FTYPE_UDI_UDI, clmul_zbkc64_or_zbc64),
-RISCV_BUILTIN (clmulh_si, "clmulh_32", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, clmul_zbkc32_or_zbc32),
-RISCV_BUILTIN (clmulh_di, "clmulh_64", RISCV_BUILTIN_DIRECT, RISCV_UDI_FTYPE_UDI_UDI, clmul_zbkc64_or_zbc64),
+RISCV_BUILTIN (clmul_si, "clmul_32", RISCV_USI_FTYPE_USI_USI, clmul_zbkc_or_zbc),
+RISCV_BUILTIN (clmul_di, "clmul_64", RISCV_UDI_FTYPE_UDI_UDI, clmul_zbkc64_or_zbc64),
+RISCV_BUILTIN (clmulh_si, "clmulh_32", RISCV_USI_FTYPE_USI_USI, clmul_zbkc32_or_zbc32),
+RISCV_BUILTIN (clmulh_di, "clmulh_64", RISCV_UDI_FTYPE_UDI_UDI, clmul_zbkc64_or_zbc64),
 
 // zbc
-RISCV_BUILTIN (clmulr_si, "clmulr_32", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, clmulr_zbc32),
-RISCV_BUILTIN (clmulr_di, "clmulr_64", RISCV_BUILTIN_DIRECT, RISCV_UDI_FTYPE_UDI_UDI, clmulr_zbc64),
+RISCV_BUILTIN (clmulr_si, "clmulr_32", RISCV_USI_FTYPE_USI_USI, clmulr_zbc32),
+RISCV_BUILTIN (clmulr_di, "clmulr_64", RISCV_UDI_FTYPE_UDI_UDI, clmulr_zbc64),
diff --git a/gcc/config/riscv/riscv-scalar-crypto.def b/gcc/config/riscv/riscv-scalar-crypto.def
index 28b3408fcd4..a0781dcb6bb 100644
--- a/gcc/config/riscv/riscv-scalar-crypto.def
+++ b/gcc/config/riscv/riscv-scalar-crypto.def
@@ -18,25 +18,25 @@ along with GCC; see the file COPYING3.  If not see
 <http://www.gnu.org/licenses/>.  */
 
 // ZBKB
-RISCV_BUILTIN (pack_sihi, "pack", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_UHI_UHI, crypto_zbkb32),
-RISCV_BUILTIN (pack_disi, "pack", RISCV_BUILTIN_DIRECT, RISCV_UDI_FTYPE_USI_USI, crypto_zbkb64),
+RISCV_BUILTIN (pack_sihi, "pack", RISCV_USI_FTYPE_UHI_UHI, crypto_zbkb32),
+RISCV_BUILTIN (pack_disi, "pack", RISCV_UDI_FTYPE_USI_USI, crypto_zbkb64),
 
-RISCV_BUILTIN (packh_si, "packh", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_UQI_UQI, crypto_zbkb32),
-RISCV_BUILTIN (packh_di, "packh", RISCV_BUILTIN_DIRECT, RISCV_UDI_FTYPE_UQI_UQI, crypto_zbkb64),
+RISCV_BUILTIN (packh_si, "packh", RISCV_USI_FTYPE_UQI_UQI, crypto_zbkb32),
+RISCV_BUILTIN (packh_di, "packh", RISCV_UDI_FTYPE_UQI_UQI, crypto_zbkb64),
 
-RISCV_BUILTIN (packw, "packw", RISCV_BUILTIN_DIRECT, RISCV_UDI_FTYPE_UHI_UHI, crypto_zbkb64),
+RISCV_BUILTIN (packw, "packw", RISCV_UDI_FTYPE_UHI_UHI, crypto_zbkb64),
 
-RISCV_BUILTIN (zip, "zip", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI, crypto_zbkb32),
-RISCV_BUILTIN (unzip, "unzip", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI, crypto_zbkb32),
+RISCV_BUILTIN (zip, "zip", RISCV_USI_FTYPE_USI, crypto_zbkb32),
+RISCV_BUILTIN (unzip, "unzip", RISCV_USI_FTYPE_USI, crypto_zbkb32),
 
-RISCV_BUILTIN (brev8_si, "brev8_32", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI, crypto_zbkb),
-RISCV_BUILTIN (brev8_di, "brev8_64", RISCV_BUILTIN_DIRECT, RISCV_UDI_FTYPE_UDI, crypto_zbkb64),
+RISCV_BUILTIN (brev8_si, "brev8_32", RISCV_USI_FTYPE_USI, crypto_zbkb),
+RISCV_BUILTIN (brev8_di, "brev8_64", RISCV_UDI_FTYPE_UDI, crypto_zbkb64),
 
 // ZBKX
-RISCV_BUILTIN (xperm4_si, "xperm4", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, crypto_zbkx32),
-RISCV_BUILTIN (xperm4_di, "xperm4", RISCV_BUILTIN_DIRECT, RISCV_UDI_FTYPE_UDI_UDI, crypto_zbkx64),
-RISCV_BUILTIN (xperm8_si, "xperm8", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, crypto_zbkx32),
-RISCV_BUILTIN (xperm8_di, "xperm8", RISCV_BUILTIN_DIRECT, RISCV_UDI_FTYPE_UDI_UDI, crypto_zbkx64),
+RISCV_BUILTIN (xperm4_si, "xperm4", RISCV_USI_FTYPE_USI_USI, crypto_zbkx32),
+RISCV_BUILTIN (xperm4_di, "xperm4", RISCV_UDI_FTYPE_UDI_UDI, crypto_zbkx64),
+RISCV_BUILTIN (xperm8_si, "xperm8", RISCV_USI_FTYPE_USI_USI, crypto_zbkx32),
+RISCV_BUILTIN (xperm8_di, "xperm8", RISCV_UDI_FTYPE_UDI_UDI, crypto_zbkx64),
 
 // ZKND
 DIRECT_BUILTIN (aes32dsi, RISCV_USI_FTYPE_USI_USI_USI, crypto_zknd32),
@@ -54,10 +54,10 @@ DIRECT_BUILTIN (aes64es, RISCV_UDI_FTYPE_UDI_UDI, crypto_zkne64),
 DIRECT_BUILTIN (aes64esm, RISCV_UDI_FTYPE_UDI_UDI, crypto_zkne64),
 
 // ZKNH
-RISCV_BUILTIN (sha256sig0_si, "sha256sig0", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI, crypto_zknh),
-RISCV_BUILTIN (sha256sig1_si, "sha256sig1", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI, crypto_zknh),
-RISCV_BUILTIN (sha256sum0_si, "sha256sum0", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI, crypto_zknh),
-RISCV_BUILTIN (sha256sum1_si, "sha256sum1", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI, crypto_zknh),
+RISCV_BUILTIN (sha256sig0_si, "sha256sig0", RISCV_USI_FTYPE_USI, crypto_zknh),
+RISCV_BUILTIN (sha256sig1_si, "sha256sig1", RISCV_USI_FTYPE_USI, crypto_zknh),
+RISCV_BUILTIN (sha256sum0_si, "sha256sum0", RISCV_USI_FTYPE_USI, crypto_zknh),
+RISCV_BUILTIN (sha256sum1_si, "sha256sum1", RISCV_USI_FTYPE_USI, crypto_zknh),
 
 DIRECT_BUILTIN (sha512sig0h, RISCV_USI_FTYPE_USI_USI, crypto_zknh32),
 DIRECT_BUILTIN (sha512sig0l, RISCV_USI_FTYPE_USI_USI, crypto_zknh32),
@@ -72,27 +72,27 @@ DIRECT_BUILTIN (sha512sum0, RISCV_UDI_FTYPE_UDI, crypto_zknh64),
 DIRECT_BUILTIN (sha512sum1, RISCV_UDI_FTYPE_UDI, crypto_zknh64),
 
 // ZKSH
-RISCV_BUILTIN (sm3p0_si, "sm3p0", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI, crypto_zksh),
-RISCV_BUILTIN (sm3p1_si, "sm3p1", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI, crypto_zksh),
+RISCV_BUILTIN (sm3p0_si, "sm3p0", RISCV_USI_FTYPE_USI, crypto_zksh),
+RISCV_BUILTIN (sm3p1_si, "sm3p1", RISCV_USI_FTYPE_USI, crypto_zksh),
 
 // ZKSED
-RISCV_BUILTIN (sm4ed_si, "sm4ed", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_USI, crypto_zksed),
-RISCV_BUILTIN (sm4ks_si, "sm4ks", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_USI, crypto_zksed),
+RISCV_BUILTIN (sm4ed_si, "sm4ed", RISCV_USI_FTYPE_USI_USI_USI, crypto_zksed),
+RISCV_BUILTIN (sm4ks_si, "sm4ks", RISCV_USI_FTYPE_USI_USI_USI, crypto_zksed),
 
 
 // ZBB
 
-RISCV_BUILTIN_NO_PREFIX (clzsi2,"clz_32",RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI,zbb),
-RISCV_BUILTIN_NO_PREFIX (clzdi2,"clz_64",RISCV_BUILTIN_DIRECT, RISCV_UDI_FTYPE_UDI,zbb64),
-RISCV_BUILTIN_NO_PREFIX (ctzsi2,"ctz_32",RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI,zbb),
-RISCV_BUILTIN_NO_PREFIX (ctzdi2,"ctz_64",RISCV_BUILTIN_DIRECT, RISCV_UDI_FTYPE_UDI,zbb64),
-RISCV_BUILTIN_NO_PREFIX (popcountsi2,"popcount_32",RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI,zbb),
-RISCV_BUILTIN_NO_PREFIX (popcountdi2,"popcount_64",RISCV_BUILTIN_DIRECT, RISCV_UDI_FTYPE_UDI,zbb64),
-RISCV_BUILTIN_NO_PREFIX (orcbsi2,"orc_b_32", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI,zbb),
-RISCV_BUILTIN_NO_PREFIX (orcbdi2,"orc_b_64",RISCV_BUILTIN_DIRECT, RISCV_UDI_FTYPE_UDI,zbb64),
+RISCV_BUILTIN_NO_PREFIX (clzsi2,"clz_32",RISCV_USI_FTYPE_USI,zbb),
+RISCV_BUILTIN_NO_PREFIX (clzdi2,"clz_64",RISCV_UDI_FTYPE_UDI,zbb64),
+RISCV_BUILTIN_NO_PREFIX (ctzsi2,"ctz_32",RISCV_USI_FTYPE_USI,zbb),
+RISCV_BUILTIN_NO_PREFIX (ctzdi2,"ctz_64",RISCV_UDI_FTYPE_UDI,zbb64),
+RISCV_BUILTIN_NO_PREFIX (popcountsi2,"popcount_32",RISCV_USI_FTYPE_USI,zbb),
+RISCV_BUILTIN_NO_PREFIX (popcountdi2,"popcount_64",RISCV_UDI_FTYPE_UDI,zbb64),
+RISCV_BUILTIN_NO_PREFIX (orcbsi2,"orc_b_32", RISCV_USI_FTYPE_USI,zbb),
+RISCV_BUILTIN_NO_PREFIX (orcbdi2,"orc_b_64",RISCV_UDI_FTYPE_UDI,zbb64),
 
 // ZBKB
-RISCV_BUILTIN_NO_PREFIX (rotrsi3,"ror_32",RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_UQI,zbb_or_zbkb),
-RISCV_BUILTIN_NO_PREFIX (rotlsi3,"rol_32",RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_UQI,zbb_or_zbkb),
-RISCV_BUILTIN_NO_PREFIX (rotrdi3,"ror_64",RISCV_BUILTIN_DIRECT, RISCV_UDI_FTYPE_UDI_UQI,zbb64_or_zbkb64),
-RISCV_BUILTIN_NO_PREFIX (rotldi3,"rol_64",RISCV_BUILTIN_DIRECT, RISCV_UDI_FTYPE_UDI_UQI,zbb64_or_zbkb64),
+RISCV_BUILTIN_NO_PREFIX (rotrsi3,"ror_32",RISCV_USI_FTYPE_USI_UQI,zbb_or_zbkb),
+RISCV_BUILTIN_NO_PREFIX (rotlsi3,"rol_32",RISCV_USI_FTYPE_USI_UQI,zbb_or_zbkb),
+RISCV_BUILTIN_NO_PREFIX (rotrdi3,"ror_64",RISCV_UDI_FTYPE_UDI_UQI,zbb64_or_zbkb64),
+RISCV_BUILTIN_NO_PREFIX (rotldi3,"rol_64",RISCV_UDI_FTYPE_UDI_UQI,zbb64_or_zbkb64),
-- 
2.53.0

Reply via email to