https://gcc.gnu.org/g:ab8596266e663a33f623b526220d38949a662b9b
commit r17-623-gab8596266e663a33f623b526220d38949a662b9b Author: Nathan Sidwell <[email protected]> Date: Tue Feb 10 11:39:36 2026 -0500 [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. Diff: --- gcc/config/riscv/andes.def | 20 +- gcc/config/riscv/corev.def | 374 +++++++++++++++---------------- gcc/config/riscv/riscv-builtins.cc | 89 +++----- gcc/config/riscv/riscv-cmo.def | 32 +-- gcc/config/riscv/riscv-scalar-crypto.def | 66 +++--- 5 files changed, 275 insertions(+), 306 deletions(-) diff --git a/gcc/config/riscv/andes.def b/gcc/config/riscv/andes.def index 8345ef6c13be..685892d00030 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 9157529fd4c3..1ddb7a3f01c6 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 8c57fbb1aaad..997e637be915 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 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 code of the main .md file instruction. See riscv_builtin_type + for more information. */ + enum insn_code icode; /* 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 __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. */ +#define RISCV_BUILTIN_NO_PREFIX(INSN, NAME, FUNCTION_TYPE, AVAIL) \ + { "__builtin_riscv_" NAME, CODE_FOR_ ## INSN, \ + FUNCTION_TYPE, false, riscv_builtin_avail_ ## AVAIL } + +/* 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 78cf1d840707..f3c7fbd72e32 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 28b3408fcd47..a0781dcb6bbc 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),
