@@ -216,6 +216,8 @@ static const riscv_implied_info_t riscv_implied_info[] =
{"ssstateen", "zicsr"},
{"sstc", "zicsr"},
+ {"xsfvcp", "zve32x"},
+
{NULL, NULL}
};
@@ -415,6 +417,9 @@ static const struct riscv_ext_version riscv_ext_version_table[] =
{"xventanacondops", ISA_SPEC_CLASS_NONE, 1, 0},
+ {"xsfvcp", ISA_SPEC_CLASS_NONE, 1, 0},
+ {"xsfcease", ISA_SPEC_CLASS_NONE, 1, 0},
+
/* Terminate the list. */
{NULL, ISA_SPEC_CLASS_NONE, 0, 0}
};
@@ -1822,6 +1827,9 @@ static const riscv_ext_flag_table_t riscv_ext_flag_table[] =
{"xventanacondops", &gcc_options::x_riscv_xventana_subext, MASK_XVENTANACONDOPS},
+ {"xsfvcp", &gcc_options::x_riscv_sifive_subext, MASK_XSFVCP},
+ {"xsfcease", &gcc_options::x_riscv_sifive_subext, MASK_XSFCEASE},
+
{NULL, NULL, 0}
};
@@ -507,6 +507,13 @@ int riscv_xventana_subext
Mask(XVENTANACONDOPS) Var(riscv_xventana_subext)
+TargetVariable
+int riscv_sifive_subext
+
+Mask(XSFVCP) Var(riscv_sifive_subext)
+
+Mask(XSFCEASE) Var(riscv_sifive_subext)
+
Enum
Name(isa_spec_class) Type(enum riscv_isa_spec_class)
Supported ISA specs (for use with the -misa-spec= option):
new file mode 100644
@@ -0,0 +1,19 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64g_xsfvcp -mabi=lp64" } */
+
+int main () {
+#if !defined(__riscv)
+#error "__riscv"
+#endif
+
+#if !defined(__riscv_zve32x)
+#error "__riscv_zve32x"
+#endif
+
+
+#if !defined(__riscv_xsfvcp)
+#error "__riscv_xsfvcp"
+#endif
+
+ return 0;
+}
new file mode 100644
@@ -0,0 +1,14 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64g_xsfcease -mabi=lp64" } */
+
+int main () {
+#if !defined(__riscv)
+#error "__riscv"
+#endif
+
+#if !defined(__riscv_xsfcease)
+#error "__riscv_xsfvcp"
+#endif
+
+ return 0;
+}