Hi Dongyan:
Thanks for your patch, it seems good but just a few minor comments :)
> @@ -1721,6 +1722,9 @@ static const riscv_ext_flag_table_t
> riscv_ext_flag_table[] =
> RISCV_EXT_FLAG_ENTRY ("svinval", x_riscv_sv_subext, MASK_SVINVAL),
> RISCV_EXT_FLAG_ENTRY ("svnapot", x_riscv_sv_subext, MASK_SVNAPOT),
>
> +
> + RISCV_EXT_FLAG_ENTRY ("svvptc", x_riscv_ptc_subext, MASK_SVVPTC),
Using x_riscv_sv_subext rather than x_riscv_ptc_subext
> +
> RISCV_EXT_FLAG_ENTRY ("ztso", x_riscv_ztso_subext, MASK_ZTSO),
>
> RISCV_EXT_FLAG_ENTRY ("xcvmac", x_riscv_xcv_subext, MASK_XCVMAC),
> diff --git a/gcc/common/config/riscv/riscv-ext-bitmask.def
> b/gcc/common/config/riscv/riscv-ext-bitmask.def
> index ca5df1740f3..c42ce152ce3 100644
> --- a/gcc/common/config/riscv/riscv-ext-bitmask.def
> +++ b/gcc/common/config/riscv/riscv-ext-bitmask.def
> @@ -79,5 +79,7 @@ RISCV_EXT_BITMASK ("zcd", 1, 4)
> RISCV_EXT_BITMASK ("zcf", 1, 5)
> RISCV_EXT_BITMASK ("zcmop", 1, 6)
> RISCV_EXT_BITMASK ("zawrs", 1, 7)
> +RISCV_EXT_BITMASK ("svvptc", 1, 8)
> +
^^^ drop this blankline
>
> #undef RISCV_EXT_BITMASK
> diff --git a/gcc/config/riscv/riscv.opt b/gcc/config/riscv/riscv.opt
> index ab9d6e82723..3d9aae80858 100644
> --- a/gcc/config/riscv/riscv.opt
> +++ b/gcc/config/riscv/riscv.opt
> @@ -466,6 +466,11 @@ Mask(SVINVAL) Var(riscv_sv_subext)
>
> Mask(SVNAPOT) Var(riscv_sv_subext)
>
> +TargetVariable
> +int riscv_ptc_subext
Drop this
> +
> +Mask(SVVPTC) Var(riscv_ptc_subext)
and just using riscv_sv_subext
> +
> TargetVariable
> int riscv_ztso_subext
>
>