diff --git a/gcc/common/config/riscv/riscv-common.cc b/gcc/common/config/riscv/riscv-common.cc
index 1944c7785c4..83db43ca6d0 100644
--- a/gcc/common/config/riscv/riscv-common.cc
+++ b/gcc/common/config/riscv/riscv-common.cc
@@ -168,14 +168,6 @@ static const riscv_implied_info_t riscv_implied_info[] =
   {"zvksg", "zvks"},
   {"zvksg", "zvkg"},
   {"zvbb",  "zvkb"},
-  {"zvbc",   "zve64x"},
-  {"zvkb",   "zve32x"},
-  {"zvkg",   "zve32x"},
-  {"zvkned", "zve32x"},
-  {"zvknha", "zve32x"},
-  {"zvknhb", "zve64x"},
-  {"zvksed", "zve32x"},
-  {"zvksh",  "zve32x"},
 
   {"zfbfmin", "zfhmin"},
   {"zfh", "zfhmin"},
diff --git a/gcc/config/riscv/arch-canonicalize b/gcc/config/riscv/arch-canonicalize
index 35e0f46b6bd..711bf96a69c 100755
--- a/gcc/config/riscv/arch-canonicalize
+++ b/gcc/config/riscv/arch-canonicalize
@@ -82,14 +82,6 @@ IMPLIED_EXT = {
   "zvksc"  : ["zvks", "zvbc"],
   "zvksg"  : ["zvks", "zvkg"],
   "zvbb"   : ["zvkb"],
-  "zvbc"   : ["zve64x"],
-  "zvkb"   : ["zve32x"],
-  "zvkg"   : ["zve32x"],
-  "zvkned" : ["zve32x"],
-  "zvknha" : ["zve32x"],
-  "zvknhb" : ["zve64x"],
-  "zvksed" : ["zve32x"],
-  "zvksh"  : ["zve32x"],
 }
 
 def arch_canonicalize(arch, isa_spec):
diff --git a/gcc/config/riscv/riscv.cc b/gcc/config/riscv/riscv.cc
index b19d56149e7..1eb832962bf 100644
--- a/gcc/config/riscv/riscv.cc
+++ b/gcc/config/riscv/riscv.cc
@@ -9691,6 +9691,20 @@ riscv_override_options_internal (struct gcc_options *opts)
   else if (!TARGET_MUL_OPTS_P (opts) && TARGET_DIV_OPTS_P (opts))
     error ("%<-mdiv%> requires %<-march%> to subsume the %<M%> extension");
 
+  /* ZVK* extensions require v or zve* extension.  */
+  if (TARGET_ZVBB && !TARGET_VECTOR)
+    error ("zvbb extension requires v or zve32 extension");
+
+  if (TARGET_ZVBC && !TARGET_VECTOR_ELEN_64)
+    error ("zvbc extension requires v or zve64 extension");
+
+  if (TARGET_ZVKNHB && !TARGET_VECTOR_ELEN_64)
+    error ("zvknhb extension requires v or zve64 extension");
+
+  if ((TARGET_ZVKB || TARGET_ZVKG || TARGET_ZVKNED ||TARGET_ZVKNHA
+     || TARGET_ZVKSED || TARGET_ZVKSH) && !TARGET_VECTOR)
+    error ("zvk extensions requires v or zve32 extension");
+
   /* We might use a multiplication to calculate the scalable vector length at
      runtime.  Therefore, require the M extension.  */
   if (TARGET_VECTOR && !TARGET_MUL)
diff --git a/gcc/testsuite/gcc.target/riscv/pr116150-1.c b/gcc/testsuite/gcc.target/riscv/pr116150-1.c
new file mode 100644
index 00000000000..409c6394f15
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/pr116150-1.c
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gc_zvbb_zbkb" { target { rv64 } } } */
+/* { dg-options "-march=rv32gc_zvbb_zbkb" { target { rv32 } } } */
+int foo()
+{
+}
+
+/* { dg-error "zvbb extension requires v or zve32 extension" "" { target *-*-* } 0 } */
+/* { dg-error "zvk extensions requires v or zve32 extension" "" { target *-*-* } 0 } */
diff --git a/gcc/testsuite/gcc.target/riscv/pr116150-2.c b/gcc/testsuite/gcc.target/riscv/pr116150-2.c
new file mode 100644
index 00000000000..43da1013657
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/pr116150-2.c
@@ -0,0 +1,8 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gc_zvbc" { target { rv64 } } } */
+/* { dg-options "-march=rv32gc_zvbc" { target { rv32 } } } */
+int foo()
+{
+}
+
+/* { dg-error "zvbc extension requires v or zve64 extension" "" { target *-*-* } 0 } */
diff --git a/gcc/testsuite/gcc.target/riscv/pr116150-3.c b/gcc/testsuite/gcc.target/riscv/pr116150-3.c
new file mode 100644
index 00000000000..907cc02cf40
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/pr116150-3.c
@@ -0,0 +1,8 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gc_zvknhb" { target { rv64 } } } */
+/* { dg-options "-march=rv32gc_zvknhb" { target { rv32 } } } */
+int foo()
+{
+}
+
+/* { dg-error "zvknhb extension requires v or zve64 extension" "" { target *-*-* } 0 } */
diff --git a/gcc/testsuite/gcc.target/riscv/pr116150-4.c b/gcc/testsuite/gcc.target/riscv/pr116150-4.c
new file mode 100644
index 00000000000..82666db7e38
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/pr116150-4.c
@@ -0,0 +1,8 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gc_zvkb_zvkned_zvknha_zvksed_zvksh_zvkg" { target { rv64 } } } */
+/* { dg-options "-march=rv32gc_zvkb_zvkned_zvknha_zvksed_zvksh_zvkg" { target { rv32 } } } */
+int foo()
+{
+}
+
+/* { dg-error "zvk extensions requires v or zve32 extension" "" { target *-*-* } 0 } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-47.c b/gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-47.c
index 94bbcb05e4d..fbe2a1d6013 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-47.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-47.c
@@ -1,6 +1,6 @@
 /* Test that we do not have error when compile */
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc -mabi=lp64d -O3" } */
+/* { dg-options "-march=rv64gcv -mabi=lp64d -O3" } */
 
 #include "riscv_vector.h"
 
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-48.c b/gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-48.c
index 054b7630fa9..5d5ba179e86 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-48.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-48.c
@@ -1,6 +1,6 @@
 /* Test that we do not have error when compile */
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc -mabi=lp64d -O3" } */
+/* { dg-options "-march=rv64gcv -mabi=lp64d -O3" } */
 
 #include "riscv_vector.h"
 
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-49.c b/gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-49.c
index b2e6658f4d3..a95d2754856 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-49.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-49.c
@@ -1,6 +1,6 @@
 /* Test that we do not have error when compile */
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc -mabi=lp64d -O3" } */
+/* { dg-options "-march=rv64gcv -mabi=lp64d -O3" } */
 
 #include "riscv_vector.h"
 
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-50.c b/gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-50.c
index 8574cd049cf..442111e8501 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-50.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-50.c
@@ -1,6 +1,6 @@
 /* Test that we do not have error when compile */
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc -mabi=lp64d -O3" } */
+/* { dg-options "-march=rv64gcv -mabi=lp64d -O3" } */
 
 #include "riscv_vector.h"
 
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-51.c b/gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-51.c
index e27b4d5fbb3..28076621299 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-51.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-51.c
@@ -1,6 +1,6 @@
 /* Test that we do not have error when compile */
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc -mabi=lp64d -O3" } */
+/* { dg-options "-march=rv64gcv -mabi=lp64d -O3" } */
 
 #include "riscv_vector.h"
 
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-52.c b/gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-52.c
index 2213c6fe35d..ade88d6d055 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-52.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-52.c
@@ -1,6 +1,6 @@
 /* Test that we do not have error when compile */
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc -mabi=lp64d -O3" } */
+/* { dg-options "-march=rv64gcv -mabi=lp64d -O3" } */
 
 #include "riscv_vector.h"
 
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-53.c b/gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-53.c
index 66901cc72ad..d3a07923433 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-53.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-53.c
@@ -1,6 +1,6 @@
 /* Test that we do not have error when compile */
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc -mabi=lp64d -O3" } */
+/* { dg-options "-march=rv64gcv -mabi=lp64d -O3" } */
 
 #include "riscv_vector.h"
 
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/zvbc-intrinsic.c b/gcc/testsuite/gcc.target/riscv/rvv/base/zvbc-intrinsic.c
index 6975ae4c0e7..550f32f4f2b 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/base/zvbc-intrinsic.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/base/zvbc-intrinsic.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc_zvbc -mabi=lp64d -O2" } */
+/* { dg-options "-march=rv64gc_zvbc_zve64x -mabi=lp64d -O2" } */
 
 #include "riscv_vector.h"
 
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/zvbc_vx_constraint-1.c b/gcc/testsuite/gcc.target/riscv/rvv/base/zvbc_vx_constraint-1.c
index 1bf11e4c231..da418ffd7b3 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/base/zvbc_vx_constraint-1.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/base/zvbc_vx_constraint-1.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-march=rv32gc_zvbc -mabi=ilp32 -O3" } */
+/* { dg-options "-march=rv32gc_zvbc_zve64x -mabi=ilp32d -O3" } */
 #include "riscv_vector.h"
 
 vuint64m1_t test_vclmul_vx_u64m1(vuint64m1_t vs2, uint64_t rs1, size_t vl) {
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/zvbc_vx_constraint-2.c b/gcc/testsuite/gcc.target/riscv/rvv/base/zvbc_vx_constraint-2.c
index 3fb14660af8..b60c442167d 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/base/zvbc_vx_constraint-2.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/base/zvbc_vx_constraint-2.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc_zvbc -mabi=lp64d -O3" } */
+/* { dg-options "-march=rv64gc_zvbc_zve64x -mabi=lp64d -O3" } */
 #include "riscv_vector.h"
 
 vuint64m1_t test_vclmul_vx_u64m1_extend(vuint64m1_t vs2, uint32_t rs1, size_t vl) {
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/zvknhb-intrinsic.c b/gcc/testsuite/gcc.target/riscv/rvv/base/zvknhb-intrinsic.c
index 1d23903fa6f..3d901c26fb7 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/base/zvknhb-intrinsic.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/base/zvknhb-intrinsic.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc_zvknhb -mabi=lp64d -O2" } */
+/* { dg-options "-march=rv64gc_zvknhb_zve64x -mabi=lp64d -O2" } */
 
 #include "riscv_vector.h"
 
diff --git a/gcc/testsuite/gcc.target/riscv/zvbb.c b/gcc/testsuite/gcc.target/riscv/zvbb.c
index 0b78fe4dc62..0e3f087d469 100644
--- a/gcc/testsuite/gcc.target/riscv/zvbb.c
+++ b/gcc/testsuite/gcc.target/riscv/zvbb.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc_zvbb" { target { rv64 } } } */
-/* { dg-options "-march=rv32gc_zvbb" { target { rv32 } } } */
+/* { dg-options "-march=rv64gcv_zvbb" { target { rv64 } } } */
+/* { dg-options "-march=rv32gcv_zvbb" { target { rv32 } } } */
 
 #ifndef __riscv_zvbb
 #error "Feature macro not defined"
diff --git a/gcc/testsuite/gcc.target/riscv/zvbc.c b/gcc/testsuite/gcc.target/riscv/zvbc.c
index 2a00c965f32..53b384fe4e5 100644
--- a/gcc/testsuite/gcc.target/riscv/zvbc.c
+++ b/gcc/testsuite/gcc.target/riscv/zvbc.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc_zvbc" { target { rv64 } } } */
-/* { dg-options "-march=rv32gc_zvbc" { target { rv32 } } } */
+/* { dg-options "-march=rv64gcv_zvbc" { target { rv64 } } } */
+/* { dg-options "-march=rv32gcv_zvbc" { target { rv32 } } } */
 
 #ifndef __riscv_zvbc
 #error "Feature macro not defined"
diff --git a/gcc/testsuite/gcc.target/riscv/zvkb.c b/gcc/testsuite/gcc.target/riscv/zvkb.c
index d5c28e79ef6..ca5a2de26d3 100644
--- a/gcc/testsuite/gcc.target/riscv/zvkb.c
+++ b/gcc/testsuite/gcc.target/riscv/zvkb.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc_zvkb" { target { rv64 } } } */
-/* { dg-options "-march=rv32gc_zvkb" { target { rv32 } } } */
+/* { dg-options "-march=rv64gcv_zvkb" { target { rv64 } } } */
+/* { dg-options "-march=rv32gcv_zvkb" { target { rv32 } } } */
 
 #ifndef __riscv_zvkb
 #error "Feature macro not defined"
diff --git a/gcc/testsuite/gcc.target/riscv/zvkg.c b/gcc/testsuite/gcc.target/riscv/zvkg.c
index fe0a841e745..d6d495fdc98 100644
--- a/gcc/testsuite/gcc.target/riscv/zvkg.c
+++ b/gcc/testsuite/gcc.target/riscv/zvkg.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc_zvkg" { target { rv64 } } } */
-/* { dg-options "-march=rv32gc_zvkg" { target { rv32 } } } */
+/* { dg-options "-march=rv64gcv_zvkg" { target { rv64 } } } */
+/* { dg-options "-march=rv32gcv_zvkg" { target { rv32 } } } */
 
 #ifndef __riscv_zvkg
 #error "Feature macro not defined"
diff --git a/gcc/testsuite/gcc.target/riscv/zvkn-1.c b/gcc/testsuite/gcc.target/riscv/zvkn-1.c
index 069a8f66c92..46bd6b44d32 100644
--- a/gcc/testsuite/gcc.target/riscv/zvkn-1.c
+++ b/gcc/testsuite/gcc.target/riscv/zvkn-1.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc_zvkned_zvknhb_zvkb_zvkt" { target { rv64 } } } */
-/* { dg-options "-march=rv32gc_zvkned_zvknhb_zvkb_zvkt" { target { rv32 } } } */
+/* { dg-options "-march=rv64gcv_zvkned_zvknhb_zvkb_zvkt" { target { rv64 } } } */
+/* { dg-options "-march=rv32gcv_zvkned_zvknhb_zvkb_zvkt" { target { rv32 } } } */
 
 #ifndef __riscv_zvkn
 #error "Feature macro for `Zvkn' not defined"
diff --git a/gcc/testsuite/gcc.target/riscv/zvkn.c b/gcc/testsuite/gcc.target/riscv/zvkn.c
index bcecbcc7e77..136f51bfec9 100644
--- a/gcc/testsuite/gcc.target/riscv/zvkn.c
+++ b/gcc/testsuite/gcc.target/riscv/zvkn.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc_zvkn" { target { rv64 } } } */
-/* { dg-options "-march=rv32gc_zvkn" { target { rv32 } } } */
+/* { dg-options "-march=rv64gcv_zvkn" { target { rv64 } } } */
+/* { dg-options "-march=rv32gcv_zvkn" { target { rv32 } } } */
 
 #ifndef __riscv_zvkn
 #error "Feature macro for `Zvkn' not defined"
diff --git a/gcc/testsuite/gcc.target/riscv/zvknc-1.c b/gcc/testsuite/gcc.target/riscv/zvknc-1.c
index 64cae2bfe83..283895e8a1a 100644
--- a/gcc/testsuite/gcc.target/riscv/zvknc-1.c
+++ b/gcc/testsuite/gcc.target/riscv/zvknc-1.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc_zvkned_zvknhb_zvkb_zvkt_zvbc" { target { rv64 } } } */
-/* { dg-options "-march=rv32gc_zvkned_zvknhb_zvkb_zvkt_zvbc" { target { rv32 } } } */
+/* { dg-options "-march=rv64gcv_zvkned_zvknhb_zvkb_zvkt_zvbc" { target { rv64 } } } */
+/* { dg-options "-march=rv32gcv_zvkned_zvknhb_zvkb_zvkt_zvbc" { target { rv32 } } } */
 
 #ifndef __riscv_zvknc
 #error "Feature macro for `Zvknc' not defined"
diff --git a/gcc/testsuite/gcc.target/riscv/zvknc-2.c b/gcc/testsuite/gcc.target/riscv/zvknc-2.c
index 1f8b510bfd1..e785030b4a6 100644
--- a/gcc/testsuite/gcc.target/riscv/zvknc-2.c
+++ b/gcc/testsuite/gcc.target/riscv/zvknc-2.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc_zvkn_zvbc" { target { rv64 } } } */
-/* { dg-options "-march=rv32gc_zvkn_zvbc" { target { rv32 } } } */
+/* { dg-options "-march=rv64gcv_zvkn_zvbc" { target { rv64 } } } */
+/* { dg-options "-march=rv32gcv_zvkn_zvbc" { target { rv32 } } } */
 
 #ifndef __riscv_zvknc
 #error "Feature macro for `Zvknc' not defined"
diff --git a/gcc/testsuite/gcc.target/riscv/zvknc.c b/gcc/testsuite/gcc.target/riscv/zvknc.c
index 64dda5fdf1f..c2ba235f75e 100644
--- a/gcc/testsuite/gcc.target/riscv/zvknc.c
+++ b/gcc/testsuite/gcc.target/riscv/zvknc.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc_zvknc" { target { rv64 } } } */
-/* { dg-options "-march=rv32gc_zvknc" { target { rv32 } } } */
+/* { dg-options "-march=rv64gcv_zvknc" { target { rv64 } } } */
+/* { dg-options "-march=rv32gcv_zvknc" { target { rv32 } } } */
 
 #ifndef __riscv_zvknc
 #error "Feature macro for `Zvknc' not defined"
diff --git a/gcc/testsuite/gcc.target/riscv/zvkned.c b/gcc/testsuite/gcc.target/riscv/zvkned.c
index 8f9f2532f3d..18f99706f4d 100644
--- a/gcc/testsuite/gcc.target/riscv/zvkned.c
+++ b/gcc/testsuite/gcc.target/riscv/zvkned.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc_zvkned" { target { rv64 } } } */
-/* { dg-options "-march=rv32gc_zvkned" { target { rv32 } } } */
+/* { dg-options "-march=rv64gcv_zvkned" { target { rv64 } } } */
+/* { dg-options "-march=rv32gcv_zvkned" { target { rv32 } } } */
 
 #ifndef __riscv_zvkned
 #error "Feature macro not defined"
diff --git a/gcc/testsuite/gcc.target/riscv/zvkng-1.c b/gcc/testsuite/gcc.target/riscv/zvkng-1.c
index 5419585f4de..92f83ac8013 100644
--- a/gcc/testsuite/gcc.target/riscv/zvkng-1.c
+++ b/gcc/testsuite/gcc.target/riscv/zvkng-1.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc_zvkned_zvknhb_zvkb_zvkt_zvkg" { target { rv64 } } } */
-/* { dg-options "-march=rv32gc_zvkned_zvknhb_zvkb_zvkt_zvkg" { target { rv32 } } } */
+/* { dg-options "-march=rv64gcv_zvkned_zvknhb_zvkb_zvkt_zvkg" { target { rv64 } } } */
+/* { dg-options "-march=rv32gcv_zvkned_zvknhb_zvkb_zvkt_zvkg" { target { rv32 } } } */
 
 #ifndef __riscv_zvkng
 #error "Feature macro for `Zvkng' not defined"
diff --git a/gcc/testsuite/gcc.target/riscv/zvkng-2.c b/gcc/testsuite/gcc.target/riscv/zvkng-2.c
index 6c7b239e831..27000d26018 100644
--- a/gcc/testsuite/gcc.target/riscv/zvkng-2.c
+++ b/gcc/testsuite/gcc.target/riscv/zvkng-2.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc_zvkn_zvkg" { target { rv64 } } } */
-/* { dg-options "-march=rv32gc_zvkn_zvkg" { target { rv32 } } } */
+/* { dg-options "-march=rv64gcv_zvkn_zvkg" { target { rv64 } } } */
+/* { dg-options "-march=rv32gcv_zvkn_zvkg" { target { rv32 } } } */
 
 #ifndef __riscv_zvkng
 #error "Feature macro for `Zvkng' not defined"
diff --git a/gcc/testsuite/gcc.target/riscv/zvkng.c b/gcc/testsuite/gcc.target/riscv/zvkng.c
index 6c516a4ae13..2623ce497e0 100644
--- a/gcc/testsuite/gcc.target/riscv/zvkng.c
+++ b/gcc/testsuite/gcc.target/riscv/zvkng.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc_zvkng" { target { rv64 } } } */
-/* { dg-options "-march=rv32gc_zvkng" { target { rv32 } } } */
+/* { dg-options "-march=rv64gcv_zvkng" { target { rv64 } } } */
+/* { dg-options "-march=rv32gcv_zvkng" { target { rv32 } } } */
 
 #ifndef __riscv_zvkng
 #error "Feature macro for `Zvkng' not defined"
diff --git a/gcc/testsuite/gcc.target/riscv/zvknha.c b/gcc/testsuite/gcc.target/riscv/zvknha.c
index 70242a8cb04..8c3ec344d93 100644
--- a/gcc/testsuite/gcc.target/riscv/zvknha.c
+++ b/gcc/testsuite/gcc.target/riscv/zvknha.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc_zvknha" { target { rv64 } } } */
-/* { dg-options "-march=rv32gc_zvknha" { target { rv32 } } } */
+/* { dg-options "-march=rv64gcv_zvknha" { target { rv64 } } } */
+/* { dg-options "-march=rv32gcv_zvknha" { target { rv32 } } } */
 
 #ifndef __riscv_zvknha
 #error "Feature macro not defined"
diff --git a/gcc/testsuite/gcc.target/riscv/zvknhb.c b/gcc/testsuite/gcc.target/riscv/zvknhb.c
index af89d7b1b7d..cd267d53719 100644
--- a/gcc/testsuite/gcc.target/riscv/zvknhb.c
+++ b/gcc/testsuite/gcc.target/riscv/zvknhb.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc_zvknhb" { target { rv64 } } } */
-/* { dg-options "-march=rv32gc_zvknhb" { target { rv32 } } } */
+/* { dg-options "-march=rv64gcv_zvknhb" { target { rv64 } } } */
+/* { dg-options "-march=rv32gcv_zvknhb" { target { rv32 } } } */
 
 #ifndef __riscv_zvknhb
 #error "Feature macro not defined"
diff --git a/gcc/testsuite/gcc.target/riscv/zvks-1.c b/gcc/testsuite/gcc.target/riscv/zvks-1.c
index 180b3f3c2a9..b31bbd1592e 100644
--- a/gcc/testsuite/gcc.target/riscv/zvks-1.c
+++ b/gcc/testsuite/gcc.target/riscv/zvks-1.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc_zvksed_zvksh_zvkb_zvkt" { target { rv64 } } } */
-/* { dg-options "-march=rv32gc_zvksed_zvksh_zvkb_zvkt" { target { rv32 } } } */
+/* { dg-options "-march=rv64gcv_zvksed_zvksh_zvkb_zvkt" { target { rv64 } } } */
+/* { dg-options "-march=rv32gcv_zvksed_zvksh_zvkb_zvkt" { target { rv32 } } } */
 
 #ifndef __riscv_zvks
 #error "Feature macro for `Zvks' not defined"
diff --git a/gcc/testsuite/gcc.target/riscv/zvks.c b/gcc/testsuite/gcc.target/riscv/zvks.c
index 2022d168ec1..7efeadd5c9c 100644
--- a/gcc/testsuite/gcc.target/riscv/zvks.c
+++ b/gcc/testsuite/gcc.target/riscv/zvks.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc_zvks" { target { rv64 } } } */
-/* { dg-options "-march=rv32gc_zvks" { target { rv32 } } } */
+/* { dg-options "-march=rv64gcv_zvks" { target { rv64 } } } */
+/* { dg-options "-march=rv32gcv_zvks" { target { rv32 } } } */
 
 #ifndef __riscv_zvks
 #error "Feature macro for `Zvks' not defined"
diff --git a/gcc/testsuite/gcc.target/riscv/zvksc-1.c b/gcc/testsuite/gcc.target/riscv/zvksc-1.c
index 0c81b4ee93b..1e47afb2703 100644
--- a/gcc/testsuite/gcc.target/riscv/zvksc-1.c
+++ b/gcc/testsuite/gcc.target/riscv/zvksc-1.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc_zvksed_zvksh_zvkb_zvkt_zvbc" { target { rv64 } } } */
-/* { dg-options "-march=rv32gc_zvksed_zvksh_zvkb_zvkt_zvbc" { target { rv32 } } } */
+/* { dg-options "-march=rv64gcv_zvksed_zvksh_zvkb_zvkt_zvbc" { target { rv64 } } } */
+/* { dg-options "-march=rv32gcv_zvksed_zvksh_zvkb_zvkt_zvbc" { target { rv32 } } } */
 
 #ifndef __riscv_zvksc
 #error "Feature macro for `Zvksc' not defined"
diff --git a/gcc/testsuite/gcc.target/riscv/zvksc-2.c b/gcc/testsuite/gcc.target/riscv/zvksc-2.c
index 0cee3586390..ce7f1f6402b 100644
--- a/gcc/testsuite/gcc.target/riscv/zvksc-2.c
+++ b/gcc/testsuite/gcc.target/riscv/zvksc-2.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc_zvks_zvbc" { target { rv64 } } } */
-/* { dg-options "-march=rv32gc_zvks_zvbc" { target { rv32 } } } */
+/* { dg-options "-march=rv64gcv_zvks_zvbc" { target { rv64 } } } */
+/* { dg-options "-march=rv32gcv_zvks_zvbc" { target { rv32 } } } */
 
 #ifndef __riscv_zvksc
 #error "Feature macro for `Zvksc' not defined"
diff --git a/gcc/testsuite/gcc.target/riscv/zvksc.c b/gcc/testsuite/gcc.target/riscv/zvksc.c
index 6c33a86aa2e..e3bff46e1a5 100644
--- a/gcc/testsuite/gcc.target/riscv/zvksc.c
+++ b/gcc/testsuite/gcc.target/riscv/zvksc.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc_zvksc" { target { rv64 } } } */
-/* { dg-options "-march=rv32gc_zvksc" { target { rv32 } } } */
+/* { dg-options "-march=rv64gcv_zvksc" { target { rv64 } } } */
+/* { dg-options "-march=rv32gcv_zvksc" { target { rv32 } } } */
 
 #ifndef __riscv_zvksc
 #error "Feature macro for `Zvksc' not defined"
diff --git a/gcc/testsuite/gcc.target/riscv/zvksed.c b/gcc/testsuite/gcc.target/riscv/zvksed.c
index 2ac58f84819..491ec72d663 100644
--- a/gcc/testsuite/gcc.target/riscv/zvksed.c
+++ b/gcc/testsuite/gcc.target/riscv/zvksed.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc_zvksed" { target { rv64 } } } */
-/* { dg-options "-march=rv32gc_zvksed" { target { rv32 } } } */
+/* { dg-options "-march=rv64gcv_zvksed" { target { rv64 } } } */
+/* { dg-options "-march=rv32gcv_zvksed" { target { rv32 } } } */
 
 #ifndef __riscv_zvksed
 #error "Feature macro not defined"
diff --git a/gcc/testsuite/gcc.target/riscv/zvksg-1.c b/gcc/testsuite/gcc.target/riscv/zvksg-1.c
index a81c8faf302..fc8fded20d5 100644
--- a/gcc/testsuite/gcc.target/riscv/zvksg-1.c
+++ b/gcc/testsuite/gcc.target/riscv/zvksg-1.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc_zvksed_zvksh_zvkb_zvkt_zvkg" { target { rv64 } } } */
-/* { dg-options "-march=rv32gc_zvksed_zvksh_zvkb_zvkt_zvkg" { target { rv32 } } } */
+/* { dg-options "-march=rv64gcv_zvksed_zvksh_zvkb_zvkt_zvkg" { target { rv64 } } } */
+/* { dg-options "-march=rv32gcv_zvksed_zvksh_zvkb_zvkt_zvkg" { target { rv32 } } } */
 
 #ifndef __riscv_zvksg
 #error "Feature macro for `Zvksg' not defined"
diff --git a/gcc/testsuite/gcc.target/riscv/zvksg-2.c b/gcc/testsuite/gcc.target/riscv/zvksg-2.c
index f6aa06bfbbe..f0fbfda0acc 100644
--- a/gcc/testsuite/gcc.target/riscv/zvksg-2.c
+++ b/gcc/testsuite/gcc.target/riscv/zvksg-2.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc_zvks_zvkg" { target { rv64 } } } */
-/* { dg-options "-march=rv32gc_zvks_zvkg" { target { rv32 } } } */
+/* { dg-options "-march=rv64gcv_zvks_zvkg" { target { rv64 } } } */
+/* { dg-options "-march=rv32gcv_zvks_zvkg" { target { rv32 } } } */
 
 #ifndef __riscv_zvksg
 #error "Feature macro for `Zvksg' not defined"
diff --git a/gcc/testsuite/gcc.target/riscv/zvksg.c b/gcc/testsuite/gcc.target/riscv/zvksg.c
index af2cd6e26ac..44178c61f89 100644
--- a/gcc/testsuite/gcc.target/riscv/zvksg.c
+++ b/gcc/testsuite/gcc.target/riscv/zvksg.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc_zvksg" { target { rv64 } } } */
-/* { dg-options "-march=rv32gc_zvksg" { target { rv32 } } } */
+/* { dg-options "-march=rv64gcv_zvksg" { target { rv64 } } } */
+/* { dg-options "-march=rv32gcv_zvksg" { target { rv32 } } } */
 
 #ifndef __riscv_zvksg
 #error "Feature macro for `Zvksg' not defined"
diff --git a/gcc/testsuite/gcc.target/riscv/zvksh.c b/gcc/testsuite/gcc.target/riscv/zvksh.c
index f7190a42cc2..2b95429a3f7 100644
--- a/gcc/testsuite/gcc.target/riscv/zvksh.c
+++ b/gcc/testsuite/gcc.target/riscv/zvksh.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-march=rv64gc_zvksh" { target { rv64 } } } */
-/* { dg-options "-march=rv32gc_zvksh" { target { rv32 } } } */
+/* { dg-options "-march=rv64gcv_zvksh" { target { rv64 } } } */
+/* { dg-options "-march=rv32gcv_zvksh" { target { rv32 } } } */
 
 #ifndef __riscv_zvksh
 #error "Feature macro not defined"
