From fd946ecba7d2ec7090408b8b3ddd9d389db606e5 Mon Sep 17 00:00:00 2001
From: Pan Li <pan2.li@intel.com>
Date: Fri, 5 Jan 2024 11:38:10 +0800
Subject: [PATCH] Revert "RISC-V: Add crypto vector builtin function."

This reverts commit 960c2620db254a1edc2cd61e608df73073b3de0d.
---
 .../riscv/riscv-vector-builtins-bases.cc      | 264 +-----------------
 .../riscv/riscv-vector-builtins-bases.h       |  28 --
 .../riscv/riscv-vector-builtins-functions.def |  94 -------
 .../riscv/riscv-vector-builtins-shapes.cc     |  87 +-----
 .../riscv/riscv-vector-builtins-shapes.h      |   4 -
 .../riscv/riscv-vector-builtins-types.def     |  25 --
 gcc/config/riscv/riscv-vector-builtins.cc     | 133 +--------
 gcc/config/riscv/riscv-vector-builtins.def    |   1 -
 8 files changed, 3 insertions(+), 633 deletions(-)

diff --git a/gcc/config/riscv/riscv-vector-builtins-bases.cc b/gcc/config/riscv/riscv-vector-builtins-bases.cc
index fba981244739..810783bff4c4 100644
--- a/gcc/config/riscv/riscv-vector-builtins-bases.cc
+++ b/gcc/config/riscv/riscv-vector-builtins-bases.cc
@@ -2127,212 +2127,6 @@ public:
   }
 };
 
-/* Below implements are vector crypto */
-/* Implements vandn.[vv,vx] */
-class vandn : public function_base
-{
-public:
-  rtx expand (function_expander &e) const override
-  {
-    switch (e.op_info->op)
-      {
-      case OP_TYPE_vv:
-        return e.use_exact_insn (code_for_pred_vandn (e.vector_mode ()));
-      case OP_TYPE_vx:
-        return e.use_exact_insn (code_for_pred_vandn_scalar (e.vector_mode ()));
-      default:
-        gcc_unreachable ();
-      }
-  }
-};
-
-/* Implements vrol/vror/clz/ctz.  */
-template<rtx_code CODE>
-class bitmanip : public function_base
-{
-public:
-  bool apply_tail_policy_p () const override
-  {
-    return (CODE == CLZ || CODE == CTZ) ? false : true;
-  }
-  bool apply_mask_policy_p () const override
-  {
-    return (CODE == CLZ || CODE == CTZ) ? false : true;
-  }
-  bool has_merge_operand_p () const override
-  {
-    return (CODE == CLZ || CODE == CTZ) ? false : true;
-  }
-  
-  rtx expand (function_expander &e) const override
-  {
-    switch (e.op_info->op)
-    {
-      case OP_TYPE_v:
-      case OP_TYPE_vv:
-        return e.use_exact_insn (code_for_pred_v (CODE, e.vector_mode ()));
-      case OP_TYPE_vx:
-        return e.use_exact_insn (code_for_pred_v_scalar (CODE, e.vector_mode ()));
-      default:
-        gcc_unreachable ();
-    }
-  }
-};
-
-/* Implements vbrev/vbrev8/vrev8.  */
-template<int UNSPEC>
-class b_reverse : public function_base
-{
-public:
-  rtx expand (function_expander &e) const override
-  {
-      return e.use_exact_insn (code_for_pred_v (UNSPEC, e.vector_mode ()));
-  }
-};
-
-class vwsll : public function_base
-{
-public:
-  rtx expand (function_expander &e) const override
-  {
-    switch (e.op_info->op)
-      {
-      case OP_TYPE_vv:
-        return e.use_exact_insn (code_for_pred_vwsll (e.vector_mode ()));
-      case OP_TYPE_vx:
-        return e.use_exact_insn (code_for_pred_vwsll_scalar (e.vector_mode ()));
-      default:
-        gcc_unreachable ();
-      }
-  }
-};
-
-/* Implements clmul */
-template<int UNSPEC>
-class clmul : public function_base
-{
-public:
-  rtx expand (function_expander &e) const override
-  {
-    switch (e.op_info->op)
-      {
-      case OP_TYPE_vv:
-        return e.use_exact_insn (
-                 code_for_pred_vclmul (UNSPEC, e.vector_mode ()));
-      case OP_TYPE_vx:
-        return e.use_exact_insn
-                 (code_for_pred_vclmul_scalar (UNSPEC, e.vector_mode ()));
-      default:
-        gcc_unreachable ();
-      }
-  }
-};
-
-/* Implements vghsh/vsh2ms/vsha2c[hl]. */
-template<int UNSPEC>
-class vg_nhab : public function_base
-{
-public:
-  bool apply_mask_policy_p () const override { return false; }
-  bool use_mask_predication_p () const override { return false; }
-  bool has_merge_operand_p () const override { return false; }
-
-  rtx expand (function_expander &e) const override
-  {
-    return e.use_exact_insn (code_for_pred_v (UNSPEC, e.vector_mode ()));
-  }
-};
-
-/* Implements vgmul/vaes*. */
-template<int UNSPEC>
-class crypto_vv : public function_base
-{
-public:
-  bool apply_mask_policy_p () const override { return false; }
-  bool use_mask_predication_p () const override { return false; }
-  bool has_merge_operand_p () const override { return false; }
-
-  rtx expand (function_expander &e) const override
-  {
-    poly_uint64 nunits = 0U;
-    switch (e.op_info->op)
-    {
-      case OP_TYPE_vv:
-        if (UNSPEC == UNSPEC_VGMUL)
-          return e.use_exact_insn
-                   (code_for_pred_crypto_vv (UNSPEC, UNSPEC, e.vector_mode ()));
-        else
-          return e.use_exact_insn
-                   (code_for_pred_crypto_vv (UNSPEC + 1, UNSPEC + 1, e.vector_mode ()));
-      case OP_TYPE_vs:
-        /* Calculate the ratio between arg0 and arg1*/
-        gcc_assert (multiple_p (GET_MODE_BITSIZE (e.arg_mode (0)),
-                                GET_MODE_BITSIZE (e.arg_mode (1)), &nunits));
-        if (maybe_eq (nunits, 1U))
-          return e.use_exact_insn (code_for_pred_crypto_vvx1_scalar
-                                   (UNSPEC + 2, UNSPEC + 2, e.vector_mode ()));
-        else if (maybe_eq (nunits, 2U))
-          return e.use_exact_insn (code_for_pred_crypto_vvx2_scalar
-                                   (UNSPEC + 2, UNSPEC + 2, e.vector_mode ()));
-        else if (maybe_eq (nunits, 4U))
-          return e.use_exact_insn (code_for_pred_crypto_vvx4_scalar
-                                   (UNSPEC + 2, UNSPEC + 2, e.vector_mode ()));
-        else if (maybe_eq (nunits, 8U))
-          return e.use_exact_insn (code_for_pred_crypto_vvx8_scalar
-                                   (UNSPEC + 2, UNSPEC + 2, e.vector_mode ()));
-        else
-          return e.use_exact_insn (code_for_pred_crypto_vvx16_scalar
-                                   (UNSPEC + 2, UNSPEC + 2, e.vector_mode ()));
-      default:
-        gcc_unreachable ();
-    }
-  }
-};
-
-/* Implements vaeskf1/vsm4k. */
-template<int UNSPEC>
-class crypto_vi : public function_base
-{
-public:
-  bool apply_mask_policy_p () const override { return false; }
-  bool use_mask_predication_p () const override { return false; }
-
-  rtx expand (function_expander &e) const override
-  {
-    return e.use_exact_insn
-             (code_for_pred_crypto_vi_scalar (UNSPEC, e.vector_mode ()));
-  }
-};
-
-/* Implements vaeskf2/vsm3c. */
-template<int UNSPEC>
-class vaeskf2_vsm3c : public function_base
-{
-public:
-  bool apply_mask_policy_p () const override { return false; }
-  bool use_mask_predication_p () const override { return false; }
-  bool has_merge_operand_p () const override { return false; }
-
-  rtx expand (function_expander &e) const override
-  {
-    return e.use_exact_insn
-             (code_for_pred_vi_nomaskedoff_scalar (UNSPEC, e.vector_mode ()));
-  }
-};
-
-/* Implements vsm3me. */
-class vsm3me : public function_base
-{
-public:
-  bool apply_mask_policy_p () const override { return false; }
-  bool use_mask_predication_p () const override { return false; }
-
-  rtx expand (function_expander &e) const override
-  {
-    return e.use_exact_insn (code_for_pred_vsm3me (e.vector_mode ()));
-  }
-};
-
 static CONSTEXPR const vsetvl<false> vsetvl_obj;
 static CONSTEXPR const vsetvl<true> vsetvlmax_obj;
 static CONSTEXPR const loadstore<false, LST_UNIT_STRIDE, false> vle_obj;
@@ -2590,35 +2384,6 @@ static CONSTEXPR const seg_indexed_store<UNSPEC_UNORDERED> vsuxseg_obj;
 static CONSTEXPR const seg_indexed_store<UNSPEC_ORDERED> vsoxseg_obj;
 static CONSTEXPR const vlsegff vlsegff_obj;
 
-/* Crypto Vector */
-static CONSTEXPR const vandn vandn_obj;
-static CONSTEXPR const bitmanip<ROTATE>   vrol_obj;
-static CONSTEXPR const bitmanip<ROTATERT> vror_obj;
-static CONSTEXPR const b_reverse<UNSPEC_VBREV>   vbrev_obj;
-static CONSTEXPR const b_reverse<UNSPEC_VBREV8>  vbrev8_obj;
-static CONSTEXPR const b_reverse<UNSPEC_VREV8>   vrev8_obj;
-static CONSTEXPR const bitmanip<CLZ> vclz_obj;
-static CONSTEXPR const bitmanip<CTZ> vctz_obj;
-static CONSTEXPR const vwsll vwsll_obj;
-static CONSTEXPR const clmul<UNSPEC_VCLMUL>      vclmul_obj;
-static CONSTEXPR const clmul<UNSPEC_VCLMULH>     vclmulh_obj;
-static CONSTEXPR const vg_nhab<UNSPEC_VGHSH>     vghsh_obj;
-static CONSTEXPR const crypto_vv<UNSPEC_VGMUL>   vgmul_obj;
-static CONSTEXPR const crypto_vv<UNSPEC_VAESEF>  vaesef_obj;
-static CONSTEXPR const crypto_vv<UNSPEC_VAESEM>  vaesem_obj;
-static CONSTEXPR const crypto_vv<UNSPEC_VAESDF>  vaesdf_obj;
-static CONSTEXPR const crypto_vv<UNSPEC_VAESDM>  vaesdm_obj;
-static CONSTEXPR const crypto_vv<UNSPEC_VAESZ>   vaesz_obj;
-static CONSTEXPR const crypto_vi<UNSPEC_VAESKF1> vaeskf1_obj;
-static CONSTEXPR const vaeskf2_vsm3c<UNSPEC_VAESKF2> vaeskf2_obj;
-static CONSTEXPR const vg_nhab<UNSPEC_VSHA2MS>   vsha2ms_obj;
-static CONSTEXPR const vg_nhab<UNSPEC_VSHA2CH>   vsha2ch_obj;
-static CONSTEXPR const vg_nhab<UNSPEC_VSHA2CL>   vsha2cl_obj;
-static CONSTEXPR const crypto_vi<UNSPEC_VSM4K>   vsm4k_obj;
-static CONSTEXPR const crypto_vv<UNSPEC_VSM4R>   vsm4r_obj;
-static CONSTEXPR const vsm3me vsm3me_obj;
-static CONSTEXPR const vaeskf2_vsm3c<UNSPEC_VSM3C>   vsm3c_obj;
-
 /* Declare the function base NAME, pointing it to an instance
    of class <NAME>_obj.  */
 #define BASE(NAME) \
@@ -2880,32 +2645,5 @@ BASE (vloxseg)
 BASE (vsuxseg)
 BASE (vsoxseg)
 BASE (vlsegff)
-/* Crypto vector */
-BASE (vandn)
-BASE (vbrev)
-BASE (vbrev8)
-BASE (vrev8)
-BASE (vclz)
-BASE (vctz)
-BASE (vrol)
-BASE (vror)
-BASE (vwsll)
-BASE (vclmul)
-BASE (vclmulh)
-BASE (vghsh)
-BASE (vgmul)
-BASE (vaesef)
-BASE (vaesem)
-BASE (vaesdf)
-BASE (vaesdm)
-BASE (vaesz)
-BASE (vaeskf1)
-BASE (vaeskf2)
-BASE (vsha2ms)
-BASE (vsha2ch)
-BASE (vsha2cl)
-BASE (vsm4k)
-BASE (vsm4r)
-BASE (vsm3me)
-BASE (vsm3c)
+
 } // end namespace riscv_vector
diff --git a/gcc/config/riscv/riscv-vector-builtins-bases.h b/gcc/config/riscv/riscv-vector-builtins-bases.h
index 87c7f43a4233..2e18a62fe8db 100644
--- a/gcc/config/riscv/riscv-vector-builtins-bases.h
+++ b/gcc/config/riscv/riscv-vector-builtins-bases.h
@@ -280,34 +280,6 @@ extern const function_base *const vloxseg;
 extern const function_base *const vsuxseg;
 extern const function_base *const vsoxseg;
 extern const function_base *const vlsegff;
-/* Below function_base are Vectro Crypto*/
-extern const function_base *const vandn;
-extern const function_base *const vbrev;
-extern const function_base *const vbrev8;
-extern const function_base *const vrev8;
-extern const function_base *const vclz;
-extern const function_base *const vctz;
-extern const function_base *const vrol;
-extern const function_base *const vror;
-extern const function_base *const vwsll;
-extern const function_base *const vclmul;
-extern const function_base *const vclmulh;
-extern const function_base *const vghsh;
-extern const function_base *const vgmul;
-extern const function_base *const vaesef;
-extern const function_base *const vaesem;
-extern const function_base *const vaesdf;
-extern const function_base *const vaesdm;
-extern const function_base *const vaesz;
-extern const function_base *const vaeskf1;
-extern const function_base *const vaeskf2;
-extern const function_base *const vsha2ms;
-extern const function_base *const vsha2ch;
-extern const function_base *const vsha2cl;
-extern const function_base *const vsm4k;
-extern const function_base *const vsm4r;
-extern const function_base *const vsm3me;
-extern const function_base *const vsm3c;
 }
 
 } // end namespace riscv_vector
diff --git a/gcc/config/riscv/riscv-vector-builtins-functions.def b/gcc/config/riscv/riscv-vector-builtins-functions.def
index 96dd0d95dec7..c44bc39de4d5 100644
--- a/gcc/config/riscv/riscv-vector-builtins-functions.def
+++ b/gcc/config/riscv/riscv-vector-builtins-functions.def
@@ -653,98 +653,4 @@ DEF_RVV_FUNCTION (vsoxseg, seg_indexed_loadstore, none_m_preds, tuple_v_scalar_p
 DEF_RVV_FUNCTION (vlsegff, seg_fault_load, full_preds, tuple_v_scalar_const_ptr_size_ptr_ops)
 #undef REQUIRED_EXTENSIONS
 
-/* Definiation of crypto vector intrinsic functions */
-// ZVBB and ZVKB
-#define REQUIRED_EXTENSIONS ZVBB_EXT
-DEF_RVV_FUNCTION (vbrev,  alu, full_preds, u_vv_ops)
-DEF_RVV_FUNCTION (vclz,   alu, none_m_preds, u_vv_ops)
-DEF_RVV_FUNCTION (vctz,   alu, none_m_preds, u_vv_ops)
-DEF_RVV_FUNCTION (vwsll,  alu, full_preds, u_wvv_ops)
-DEF_RVV_FUNCTION (vwsll,  alu, full_preds, u_shift_wvx_ops)
-#undef REQUIRED_EXTENSIONS
-
-#define REQUIRED_EXTENSIONS ZVBB_OR_ZVKB_EXT
-DEF_RVV_FUNCTION (vandn,  alu, full_preds, u_vvv_ops)
-DEF_RVV_FUNCTION (vandn,  alu, full_preds, u_vvx_ops)
-DEF_RVV_FUNCTION (vbrev8, alu, full_preds, u_vv_ops)
-DEF_RVV_FUNCTION (vrev8,  alu, full_preds, u_vv_ops)
-DEF_RVV_FUNCTION (vrol,   alu, full_preds, u_vvv_ops)
-DEF_RVV_FUNCTION (vror,   alu, full_preds, u_vvv_ops)
-DEF_RVV_FUNCTION (vror,   alu, full_preds, u_shift_vvx_ops)
-DEF_RVV_FUNCTION (vrol,   alu, full_preds, u_shift_vvx_ops)
-#undef REQUIRED_EXTENSIONS
-//ZVBC
-#define REQUIRED_EXTENSIONS ZVBC_EXT
-DEF_RVV_FUNCTION (vclmul,  alu, full_preds, u_vvv_crypto_sew64_ops)
-DEF_RVV_FUNCTION (vclmul,  alu, full_preds, u_vvx_crypto_sew64_ops)
-DEF_RVV_FUNCTION (vclmulh, alu, full_preds, u_vvv_crypto_sew64_ops)
-DEF_RVV_FUNCTION (vclmulh, alu, full_preds, u_vvx_crypto_sew64_ops)
-#undef REQUIRED_EXTENSIONS
-//ZVKG
-#define REQUIRED_EXTENSIONS ZVKG_EXT
-DEF_RVV_FUNCTION(vghsh, no_mask_policy, none_tu_preds, u_vvvv_crypto_sew32_ops)
-DEF_RVV_FUNCTION(vgmul, no_mask_policy, none_tu_preds, u_vvv_crypto_sew32_ops)
-#undef REQUIRED_EXTENSIONS
-//ZVKNED
-#define REQUIRED_EXTENSIONS ZVKNED_EXT
-DEF_RVV_FUNCTION (vaesef,   crypto_vv, none_tu_preds, u_vvv_crypto_sew32_ops)
-DEF_RVV_FUNCTION (vaesef,   crypto_vv, none_tu_preds, u_vvs_crypto_sew32_ops)
-DEF_RVV_FUNCTION (vaesef,   crypto_vv, none_tu_preds, u_vvs_crypto_sew32_lmul_x2_ops)
-DEF_RVV_FUNCTION (vaesef,   crypto_vv, none_tu_preds, u_vvs_crypto_sew32_lmul_x4_ops)
-DEF_RVV_FUNCTION (vaesef,   crypto_vv, none_tu_preds, u_vvs_crypto_sew32_lmul_x8_ops)
-DEF_RVV_FUNCTION (vaesef,   crypto_vv, none_tu_preds, u_vvs_crypto_sew32_lmul_x16_ops)
-DEF_RVV_FUNCTION (vaesem,   crypto_vv, none_tu_preds, u_vvv_crypto_sew32_ops)
-DEF_RVV_FUNCTION (vaesem,   crypto_vv, none_tu_preds, u_vvs_crypto_sew32_ops)
-DEF_RVV_FUNCTION (vaesem,   crypto_vv, none_tu_preds, u_vvs_crypto_sew32_lmul_x2_ops)
-DEF_RVV_FUNCTION (vaesem,   crypto_vv, none_tu_preds, u_vvs_crypto_sew32_lmul_x4_ops)
-DEF_RVV_FUNCTION (vaesem,   crypto_vv, none_tu_preds, u_vvs_crypto_sew32_lmul_x8_ops)
-DEF_RVV_FUNCTION (vaesem,   crypto_vv, none_tu_preds, u_vvs_crypto_sew32_lmul_x16_ops)
-DEF_RVV_FUNCTION (vaesdf,   crypto_vv, none_tu_preds, u_vvv_crypto_sew32_ops)
-DEF_RVV_FUNCTION (vaesdf,   crypto_vv, none_tu_preds, u_vvs_crypto_sew32_ops)
-DEF_RVV_FUNCTION (vaesdf,   crypto_vv, none_tu_preds, u_vvs_crypto_sew32_lmul_x2_ops)
-DEF_RVV_FUNCTION (vaesdf,   crypto_vv, none_tu_preds, u_vvs_crypto_sew32_lmul_x4_ops)
-DEF_RVV_FUNCTION (vaesdf,   crypto_vv, none_tu_preds, u_vvs_crypto_sew32_lmul_x8_ops)
-DEF_RVV_FUNCTION (vaesdf,   crypto_vv, none_tu_preds, u_vvs_crypto_sew32_lmul_x16_ops)
-DEF_RVV_FUNCTION (vaesdm,   crypto_vv, none_tu_preds, u_vvv_crypto_sew32_ops)
-DEF_RVV_FUNCTION (vaesdm,   crypto_vv, none_tu_preds, u_vvs_crypto_sew32_ops)
-DEF_RVV_FUNCTION (vaesdm,   crypto_vv, none_tu_preds, u_vvs_crypto_sew32_lmul_x2_ops)
-DEF_RVV_FUNCTION (vaesdm,   crypto_vv, none_tu_preds, u_vvs_crypto_sew32_lmul_x4_ops)
-DEF_RVV_FUNCTION (vaesdm,   crypto_vv, none_tu_preds, u_vvs_crypto_sew32_lmul_x8_ops)
-DEF_RVV_FUNCTION (vaesdm,   crypto_vv, none_tu_preds, u_vvs_crypto_sew32_lmul_x16_ops)
-DEF_RVV_FUNCTION (vaesz,    crypto_vv_no_op_type, none_tu_preds, u_vvs_crypto_sew32_ops)
-DEF_RVV_FUNCTION (vaesz,    crypto_vv_no_op_type, none_tu_preds, u_vvs_crypto_sew32_lmul_x2_ops)
-DEF_RVV_FUNCTION (vaesz,    crypto_vv_no_op_type, none_tu_preds, u_vvs_crypto_sew32_lmul_x4_ops)
-DEF_RVV_FUNCTION (vaesz,    crypto_vv_no_op_type, none_tu_preds, u_vvs_crypto_sew32_lmul_x8_ops)
-DEF_RVV_FUNCTION (vaesz,    crypto_vv_no_op_type, none_tu_preds, u_vvs_crypto_sew32_lmul_x16_ops)
-DEF_RVV_FUNCTION (vaeskf1,  crypto_vi, none_tu_preds, u_vv_size_crypto_sew32_ops)
-DEF_RVV_FUNCTION (vaeskf2,  crypto_vi, none_tu_preds, u_vvv_size_crypto_sew32_ops)
-#undef REQUIRED_EXTENSIONS
-//ZVKNHA
-//ZVKNHA and ZVKNHB
-#define REQUIRED_EXTENSIONS ZVKNHA_OR_ZVKNHB_EXT
-DEF_RVV_FUNCTION (vsha2ms,  no_mask_policy, none_tu_preds, u_vvvv_crypto_sew32_ops)
-DEF_RVV_FUNCTION (vsha2ch,  no_mask_policy, none_tu_preds, u_vvvv_crypto_sew32_ops)
-DEF_RVV_FUNCTION (vsha2cl,  no_mask_policy, none_tu_preds, u_vvvv_crypto_sew32_ops)
-#undef REQUIRED_EXTENSIONS
-
-#define REQUIRED_EXTENSIONS ZVKNHB_EXT
-DEF_RVV_FUNCTION (vsha2ms,  no_mask_policy, none_tu_preds, u_vvvv_crypto_sew64_ops)
-DEF_RVV_FUNCTION (vsha2ch,  no_mask_policy, none_tu_preds, u_vvvv_crypto_sew64_ops)
-DEF_RVV_FUNCTION (vsha2cl,  no_mask_policy, none_tu_preds, u_vvvv_crypto_sew64_ops)
-#undef REQUIRED_EXTENSIONS
-//Zvksed
-#define REQUIRED_EXTENSIONS ZVKSED_EXT
-DEF_RVV_FUNCTION (vsm4k, crypto_vi, none_tu_preds, u_vv_size_crypto_sew32_ops)
-DEF_RVV_FUNCTION (vsm4r, crypto_vv, none_tu_preds, u_vvv_crypto_sew32_ops)
-DEF_RVV_FUNCTION (vsm4r, crypto_vv, none_tu_preds, u_vvs_crypto_sew32_ops)
-DEF_RVV_FUNCTION (vsm4r, crypto_vv, none_tu_preds, u_vvs_crypto_sew32_lmul_x2_ops)
-DEF_RVV_FUNCTION (vsm4r, crypto_vv, none_tu_preds, u_vvs_crypto_sew32_lmul_x4_ops)
-DEF_RVV_FUNCTION (vsm4r, crypto_vv, none_tu_preds, u_vvs_crypto_sew32_lmul_x8_ops)
-DEF_RVV_FUNCTION (vsm4r, crypto_vv, none_tu_preds, u_vvs_crypto_sew32_lmul_x16_ops)
-#undef REQUIRED_EXTENSIONS
-//Zvksh
-#define REQUIRED_EXTENSIONS ZVKSH_EXT
-DEF_RVV_FUNCTION (vsm3me, no_mask_policy,    none_tu_preds, u_vvv_crypto_sew32_ops)
-DEF_RVV_FUNCTION (vsm3c,  crypto_vi,    none_tu_preds, u_vvv_size_crypto_sew32_ops)
-#undef REQUIRED_EXTENSIONS
 #undef DEF_RVV_FUNCTION
diff --git a/gcc/config/riscv/riscv-vector-builtins-shapes.cc b/gcc/config/riscv/riscv-vector-builtins-shapes.cc
index ee8058dcdb10..0d50111216d3 100644
--- a/gcc/config/riscv/riscv-vector-builtins-shapes.cc
+++ b/gcc/config/riscv/riscv-vector-builtins-shapes.cc
@@ -984,89 +984,6 @@ struct seg_fault_load_def : public build_base
   }
 };
 
-/* vsm4r/vaes* class.  */
-struct crypto_vv_def : public build_base
-{
-  char *get_name (function_builder &b, const function_instance &instance,
-                  bool overloaded_p) const override
-  {
-    /* Return nullptr if it can not be overloaded.  */
-    if (overloaded_p && !instance.base->can_be_overloaded_p (instance.pred))
-      return nullptr;
-    b.append_base_name (instance.base_name);
-    b.append_name (operand_suffixes[instance.op_info->op]);
-
-    if (!overloaded_p)
-    {
-      if (instance.op_info->op == OP_TYPE_vv)
-        b.append_name (type_suffixes[instance.type.index].vector);
-      else
-      {
-        vector_type_index arg0_type_idx
-          = instance.op_info->args[1].get_function_type_index
-            (instance.type.index);
-        b.append_name (type_suffixes[arg0_type_idx].vector);
-        vector_type_index ret_type_idx
-          = instance.op_info->ret.get_function_type_index
-            (instance.type.index);
-        b.append_name (type_suffixes[ret_type_idx].vector);
-      }
-    }
-
-    b.append_name (predication_suffixes[instance.pred]);
-    return b.finish_name ();
-  }
-};
-
-/* vaeskf1/vaeskf2/vsm4k/vsm3c class.  */
-struct crypto_vi_def : public build_base
-{
-  char *get_name (function_builder &b, const function_instance &instance,
-                  bool overloaded_p) const override
-  {
-    /* Return nullptr if it can not be overloaded.  */
-    if (overloaded_p && !instance.base->can_be_overloaded_p (instance.pred))
-      return nullptr;
-    b.append_base_name (instance.base_name);
-    if (!overloaded_p)
-    {
-      b.append_name (operand_suffixes[instance.op_info->op]);
-      b.append_name (type_suffixes[instance.type.index].vector);
-    }
-    b.append_name (predication_suffixes[instance.pred]);
-    return b.finish_name ();
-  }
-};
-
-/* vaesz class.  */
-struct crypto_vv_no_op_type_def : public build_base
-{
-  char *get_name (function_builder &b, const function_instance &instance,
-                  bool overloaded_p) const override
-  {
-    /* Return nullptr if it can not be overloaded.  */
-    if (overloaded_p && !instance.base->can_be_overloaded_p (instance.pred))
-      return nullptr;
-    b.append_base_name (instance.base_name);
-      
-    if (!overloaded_p)
-    {
-      b.append_name (operand_suffixes[instance.op_info->op]);
-      vector_type_index arg0_type_idx
-        = instance.op_info->args[1].get_function_type_index
-          (instance.type.index);
-      b.append_name (type_suffixes[arg0_type_idx].vector);
-      vector_type_index ret_type_idx
-        = instance.op_info->ret.get_function_type_index
-          (instance.type.index);
-      b.append_name (type_suffixes[ret_type_idx].vector);
-    }
-
-    b.append_name (predication_suffixes[instance.pred]);
-    return b.finish_name ();
-  }
-};
-
 SHAPE(vsetvl, vsetvl)
 SHAPE(vsetvl, vsetvlmax)
 SHAPE(loadstore, loadstore)
@@ -1095,7 +1012,5 @@ SHAPE(vlenb, vlenb)
 SHAPE(seg_loadstore, seg_loadstore)
 SHAPE(seg_indexed_loadstore, seg_indexed_loadstore)
 SHAPE(seg_fault_load, seg_fault_load)
-SHAPE(crypto_vv, crypto_vv)
-SHAPE(crypto_vi, crypto_vi)
-SHAPE(crypto_vv_no_op_type, crypto_vv_no_op_type)
+
 } // end namespace riscv_vector
diff --git a/gcc/config/riscv/riscv-vector-builtins-shapes.h b/gcc/config/riscv/riscv-vector-builtins-shapes.h
index ac2a28ce0172..d3b5cf7d0263 100644
--- a/gcc/config/riscv/riscv-vector-builtins-shapes.h
+++ b/gcc/config/riscv/riscv-vector-builtins-shapes.h
@@ -52,10 +52,6 @@ extern const function_shape *const vlenb;
 extern const function_shape *const seg_loadstore;
 extern const function_shape *const seg_indexed_loadstore;
 extern const function_shape *const seg_fault_load;
-/* Below function_shape are Vectro Crypto*/
-extern const function_shape *const crypto_vv;
-extern const function_shape *const crypto_vi;
-extern const function_shape *const crypto_vv_no_op_type;
 }
 
 } // end namespace riscv_vector
diff --git a/gcc/config/riscv/riscv-vector-builtins-types.def b/gcc/config/riscv/riscv-vector-builtins-types.def
index 61019a56844a..06dc7109458a 100644
--- a/gcc/config/riscv/riscv-vector-builtins-types.def
+++ b/gcc/config/riscv/riscv-vector-builtins-types.def
@@ -339,18 +339,6 @@ along with GCC; see the file COPYING3. If not see
 #define DEF_RVV_TUPLE_OPS(TYPE, REQUIRE)
 #endif
 
-/* Use "DEF_RVV_CRYPTO_SEW32_OPS" macro include all SEW=32 types
-   which will be iterated and registered as intrinsic functions.  */
-#ifndef DEF_RVV_CRYPTO_SEW32_OPS
-#define DEF_RVV_CRYPTO_SEW32_OPS(TYPE, REQUIRE)
-#endif
-
-/* Use "DEF_RVV_CRYPTO_SEW64_OPS" macro include all SEW=64 types
-   which will be iterated and registered as intrinsic functions.  */
-#ifndef DEF_RVV_CRYPTO_SEW64_OPS
-#define DEF_RVV_CRYPTO_SEW64_OPS(TYPE, REQUIRE)
-#endif
-
 DEF_RVV_I_OPS (vint8mf8_t, RVV_REQUIRE_MIN_VLEN_64)
 DEF_RVV_I_OPS (vint8mf4_t, 0)
 DEF_RVV_I_OPS (vint8mf2_t, 0)
@@ -1367,17 +1355,6 @@ DEF_RVV_TUPLE_OPS (vfloat64m2x3_t, RVV_REQUIRE_ELEN_FP_64)
 DEF_RVV_TUPLE_OPS (vfloat64m2x4_t, RVV_REQUIRE_ELEN_FP_64)
 DEF_RVV_TUPLE_OPS (vfloat64m4x2_t, RVV_REQUIRE_ELEN_FP_64)
 
-DEF_RVV_CRYPTO_SEW32_OPS (vuint32mf2_t, RVV_REQUIRE_MIN_VLEN_64)
-DEF_RVV_CRYPTO_SEW32_OPS (vuint32m1_t, 0)
-DEF_RVV_CRYPTO_SEW32_OPS (vuint32m2_t, 0)
-DEF_RVV_CRYPTO_SEW32_OPS (vuint32m4_t, 0)
-DEF_RVV_CRYPTO_SEW32_OPS (vuint32m8_t, 0)
-
-DEF_RVV_CRYPTO_SEW64_OPS (vuint64m1_t, RVV_REQUIRE_ELEN_64)
-DEF_RVV_CRYPTO_SEW64_OPS (vuint64m2_t, RVV_REQUIRE_ELEN_64)
-DEF_RVV_CRYPTO_SEW64_OPS (vuint64m4_t, RVV_REQUIRE_ELEN_64)
-DEF_RVV_CRYPTO_SEW64_OPS (vuint64m8_t, RVV_REQUIRE_ELEN_64)
-
 #undef DEF_RVV_I_OPS
 #undef DEF_RVV_U_OPS
 #undef DEF_RVV_F_OPS
@@ -1429,5 +1406,3 @@ DEF_RVV_CRYPTO_SEW64_OPS (vuint64m8_t, RVV_REQUIRE_ELEN_64)
 #undef DEF_RVV_LMUL2_OPS
 #undef DEF_RVV_LMUL4_OPS
 #undef DEF_RVV_TUPLE_OPS
-#undef DEF_RVV_CRYPTO_SEW32_OPS
-#undef DEF_RVV_CRYPTO_SEW64_OPS
diff --git a/gcc/config/riscv/riscv-vector-builtins.cc b/gcc/config/riscv/riscv-vector-builtins.cc
index 25e0b6e56deb..d509be51e3d3 100644
--- a/gcc/config/riscv/riscv-vector-builtins.cc
+++ b/gcc/config/riscv/riscv-vector-builtins.cc
@@ -521,19 +521,6 @@ static const rvv_type_info tuple_ops[] = {
 #include "riscv-vector-builtins-types.def"
   {NUM_VECTOR_TYPES, 0}};
 
-/* Below types will be registered for vector-crypto intrinsic functions*/
-/* A list of sew32 will be registered for vector-crypto intrinsic functions.  */
-static const rvv_type_info crypto_sew32_ops[] = {
-#define DEF_RVV_CRYPTO_SEW32_OPS(TYPE, REQUIRE) {VECTOR_TYPE_##TYPE, REQUIRE},
-#include "riscv-vector-builtins-types.def"
-  {NUM_VECTOR_TYPES, 0}};
-
-/* A list of sew64 will be registered for vector-crypto intrinsic functions.  */
-static const rvv_type_info crypto_sew64_ops[] = {
-#define DEF_RVV_CRYPTO_SEW64_OPS(TYPE, REQUIRE) {VECTOR_TYPE_##TYPE, REQUIRE},
-#include "riscv-vector-builtins-types.def"
-  {NUM_VECTOR_TYPES, 0}};
-
 static CONSTEXPR const rvv_arg_type_info rvv_arg_type_info_end
   = rvv_arg_type_info (NUM_BASE_TYPES);
 
@@ -767,11 +754,6 @@ static CONSTEXPR const rvv_arg_type_info v_size_args[]
   = {rvv_arg_type_info (RVV_BASE_vector), rvv_arg_type_info (RVV_BASE_size),
      rvv_arg_type_info_end};
 
-/* A list of args for vector_type func (double demote_type, size_t) function.  */
-static CONSTEXPR const rvv_arg_type_info wv_size_args[]
-  = {rvv_arg_type_info (RVV_BASE_double_trunc_vector),
-    rvv_arg_type_info (RVV_BASE_size),rvv_arg_type_info_end};
-
 /* A list of args for vector_type func (vector_type, vector_type, size)
  * function.  */
 static CONSTEXPR const rvv_arg_type_info vv_size_args[]
@@ -1062,14 +1044,6 @@ static CONSTEXPR const rvv_op_info u_v_ops
      rvv_arg_type_info (RVV_BASE_vector), /* Return type */
      end_args /* Args */};
 
-/* A static operand information for vector_type func (vector_type)
- * function registration. */
-static CONSTEXPR const rvv_op_info u_vv_ops
-  = {u_ops,					/* Types */
-     OP_TYPE_v,					/* Suffix */
-     rvv_arg_type_info (RVV_BASE_vector), /* Return type */
-     v_args /* Args */};
-
 /* A static operand information for unsigned long func (vector_type)
  * function registration. */
 static CONSTEXPR const rvv_op_info b_ulong_m_ops
@@ -2200,14 +2174,6 @@ static CONSTEXPR const rvv_op_info u_wvv_ops
      rvv_arg_type_info (RVV_BASE_vector), /* Return type */
      wvv_args /* Args */};
 
-/* A static operand information for vector_type func (double demote type, size type)
- * function registration. */
-static CONSTEXPR const rvv_op_info u_shift_wvx_ops
-  = {wextu_ops,				  /* Types */
-     OP_TYPE_vx,			  /* Suffix */
-     rvv_arg_type_info (RVV_BASE_vector), /* Return type */
-     wv_size_args /* Args */};
-
 /* A static operand information for vector_type func (double demote type, double
  * demote scalar_type) function registration. */
 static CONSTEXPR const rvv_op_info i_wvx_ops
@@ -2638,101 +2604,6 @@ static CONSTEXPR const rvv_op_info all_v_vcreate_lmul4_x2_ops
      rvv_arg_type_info (RVV_BASE_vlmul_ext_x2), /* Return type */
      ext_vcreate_args /* Args */};
 
-/* A static operand information for vector_type func (vector_type).
-   Some ins just supports SEW=32, such as crypto vectol Zvkg extension.
- * function registration.  */
-static CONSTEXPR const rvv_arg_type_info vs_lmul_x2_args[]
-  = {rvv_arg_type_info (RVV_BASE_vlmul_ext_x2),
-     rvv_arg_type_info (RVV_BASE_vector), rvv_arg_type_info_end};
-
-static CONSTEXPR const rvv_arg_type_info vs_lmul_x4_args[]
-  = {rvv_arg_type_info (RVV_BASE_vlmul_ext_x4),
-     rvv_arg_type_info (RVV_BASE_vector), rvv_arg_type_info_end};
-
-static CONSTEXPR const rvv_arg_type_info vs_lmul_x8_args[]
-  = {rvv_arg_type_info (RVV_BASE_vlmul_ext_x8),
-     rvv_arg_type_info (RVV_BASE_vector), rvv_arg_type_info_end};
-
-static CONSTEXPR const rvv_arg_type_info vs_lmul_x16_args[]
-  = {rvv_arg_type_info (RVV_BASE_vlmul_ext_x16),
-     rvv_arg_type_info (RVV_BASE_vector), rvv_arg_type_info_end};
-
-static CONSTEXPR const rvv_op_info u_vvv_crypto_sew32_ops
-  = {crypto_sew32_ops,			   /* Types */
-     OP_TYPE_vv,					   /* Suffix */
-     rvv_arg_type_info (RVV_BASE_vector), /* Return type */
-     vv_args /* Args */};
-
-static CONSTEXPR const rvv_op_info u_vvvv_crypto_sew32_ops
-  = {crypto_sew32_ops,			   /* Types */
-     OP_TYPE_vv,					   /* Suffix */
-     rvv_arg_type_info (RVV_BASE_vector), /* Return type */
-     vvv_args /* Args */};
-
-static CONSTEXPR const rvv_op_info u_vvv_size_crypto_sew32_ops
-  = {crypto_sew32_ops,			   /* Types */
-     OP_TYPE_vi,					   /* Suffix */
-     rvv_arg_type_info (RVV_BASE_vector), /* Return type */
-     vv_size_args /* Args */};
-
-static CONSTEXPR const rvv_op_info u_vv_size_crypto_sew32_ops
-  = {crypto_sew32_ops,			   /* Types */
-     OP_TYPE_vi,					   /* Suffix */
-     rvv_arg_type_info (RVV_BASE_vector), /* Return type */
-     v_size_args /* Args */};
-
-static CONSTEXPR const rvv_op_info u_vvs_crypto_sew32_ops
-  = {crypto_sew32_ops,			   /* Types */
-     OP_TYPE_vs,					   /* Suffix */
-     rvv_arg_type_info (RVV_BASE_vector), /* Return type */
-     vv_args /* Args */};
-
-static CONSTEXPR const rvv_op_info u_vvs_crypto_sew32_lmul_x2_ops
-  = {crypto_sew32_ops,			   /* Types */
-     OP_TYPE_vs,					   /* Suffix */
-     rvv_arg_type_info (RVV_BASE_vlmul_ext_x2), /* Return type */
-     vs_lmul_x2_args /* Args */};
-
-static CONSTEXPR const rvv_op_info u_vvs_crypto_sew32_lmul_x4_ops
-  = {crypto_sew32_ops,			   /* Types */
-     OP_TYPE_vs,					   /* Suffix */
-     rvv_arg_type_info (RVV_BASE_vlmul_ext_x4), /* Return type */
-     vs_lmul_x4_args /* Args */};
-
-static CONSTEXPR const rvv_op_info u_vvs_crypto_sew32_lmul_x8_ops
-  = {crypto_sew32_ops,			   /* Types */
-     OP_TYPE_vs,					   /* Suffix */
-     rvv_arg_type_info (RVV_BASE_vlmul_ext_x8), /* Return type */
-     vs_lmul_x8_args /* Args */};
-
-static CONSTEXPR const rvv_op_info u_vvs_crypto_sew32_lmul_x16_ops
-  = {crypto_sew32_ops,			   /* Types */
-     OP_TYPE_vs,					   /* Suffix */
-     rvv_arg_type_info (RVV_BASE_vlmul_ext_x16), /* Return type */
-     vs_lmul_x16_args /* Args */};
-
-/* A static operand information for vector_type func (vector_type).
-   Some ins just supports SEW=64, such as crypto vectol Zvbc extension
-   vclmul.vv, vclmul.vx.
- * function registration.  */
-static CONSTEXPR const rvv_op_info u_vvv_crypto_sew64_ops
-  = {crypto_sew64_ops,			   /* Types */
-     OP_TYPE_vv,					   /* Suffix */
-     rvv_arg_type_info (RVV_BASE_vector), /* Return type */
-     vv_args /* Args */};
-
-static CONSTEXPR const rvv_op_info u_vvx_crypto_sew64_ops
-  = {crypto_sew64_ops,			   /* Types */
-     OP_TYPE_vx,					   /* Suffix */
-     rvv_arg_type_info (RVV_BASE_vector), /* Return type */
-     vx_args /* Args */};
-
-static CONSTEXPR const rvv_op_info u_vvvv_crypto_sew64_ops
-  = {crypto_sew64_ops,			   /* Types */
-     OP_TYPE_vv,					   /* Suffix */
-     rvv_arg_type_info (RVV_BASE_vector), /* Return type */
-     vvv_args /* Args */};
-
 /* A list of all RVV base function types.  */
 static CONSTEXPR const function_type_info function_types[] = {
 #define DEF_RVV_TYPE_INDEX(                                                    \
@@ -4305,9 +4176,7 @@ registered_function::overloaded_hash (const vec<tree, va_gc> &arglist)
        __riscv_vset(vint8m2_t dest, size_t index, vint8m1_t value); The reason
        is the same as above. */
       if ((instance.base == bases::vget && (i == (len - 1)))
-	  || ((instance.base == bases::vset
-               || instance.shape == shapes::crypto_vi)
-             && (i == (len - 2))))
+	  || (instance.base == bases::vset && (i == (len - 2))))
 	argument_types.safe_push (size_type_node);
       /* Vector fixed-point arithmetic instructions requiring argument vxrm.
 	     For example: vuint32m4_t __riscv_vaaddu(vuint32m4_t vs2,
diff --git a/gcc/config/riscv/riscv-vector-builtins.def b/gcc/config/riscv/riscv-vector-builtins.def
index 055ee8b2ca43..4b2ca988b437 100644
--- a/gcc/config/riscv/riscv-vector-builtins.def
+++ b/gcc/config/riscv/riscv-vector-builtins.def
@@ -558,7 +558,6 @@ DEF_RVV_TYPE (vfloat64m8_t, 17, __rvv_float64m8_t, double, RVVM8DF, _f64m8,
 
 DEF_RVV_OP_TYPE (vv)
 DEF_RVV_OP_TYPE (vx)
-DEF_RVV_OP_TYPE (vi)
 DEF_RVV_OP_TYPE (v)
 DEF_RVV_OP_TYPE (wv)
 DEF_RVV_OP_TYPE (wx)
-- 
GitLab