PR 116150: Zvk* and Zvb* extensions requires v or zve* extension, but
on gcc v is implied.
gcc/ChangeLog:
* common/config/riscv/riscv-common.cc: Removed the zvk extension's
implicit expansion of v extension.
* config/riscv/arch-canonicalize: Ditto.
* config/riscv/riscv.cc (riscv_override_options_internal): Throw error
when zvb or zvk extension without v extension.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-47.c: add
v or zve* to -march.
* gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-48.c:
Ditto.
* gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-49.c:
Ditto.
* gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-50.c:
Ditto.
* gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-51.c:
Ditto.
* gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-52.c:
Ditto.
* gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-53.c:
Ditto.
* gcc.target/riscv/rvv/base/zvbc-intrinsic.c: Ditto.
* gcc.target/riscv/rvv/base/zvbc_vx_constraint-1.c: Ditto.
* gcc.target/riscv/rvv/base/zvbc_vx_constraint-2.c: Ditto.
* gcc.target/riscv/rvv/base/zvknhb-intrinsic.c: Ditto.
* gcc.target/riscv/zvbb.c: Ditto.
* gcc.target/riscv/zvbc.c: Ditto.
* gcc.target/riscv/zvkb.c: Ditto.
* gcc.target/riscv/zvkg.c: Ditto.
* gcc.target/riscv/zvkn-1.c: Ditto.
* gcc.target/riscv/zvkn.c: Ditto.
* gcc.target/riscv/zvknc-1.c: Ditto.
* gcc.target/riscv/zvknc-2.c: Ditto.
* gcc.target/riscv/zvknc.c: Ditto.
* gcc.target/riscv/zvkned.c: Ditto.
* gcc.target/riscv/zvkng-1.c: Ditto.
* gcc.target/riscv/zvkng-2.c: Ditto.
* gcc.target/riscv/zvkng.c: Ditto.
* gcc.target/riscv/zvknha.c: Ditto.
* gcc.target/riscv/zvknhb.c: Ditto.
* gcc.target/riscv/zvks-1.c: Ditto.
* gcc.target/riscv/zvks.c: Ditto.
* gcc.target/riscv/zvksc-1.c: Ditto.
* gcc.target/riscv/zvksc-2.c: Ditto.
* gcc.target/riscv/zvksc.c: Ditto.
* gcc.target/riscv/zvksed.c: Ditto.
* gcc.target/riscv/zvksg-1.c: Ditto.
* gcc.target/riscv/zvksg-2.c: Ditto.
* gcc.target/riscv/zvksg.c: Ditto.
* gcc.target/riscv/zvksh.c: Ditto.
* gcc.target/riscv/pr116150-1.c: New test.
* gcc.target/riscv/pr116150-2.c: New test.
* gcc.target/riscv/pr116150-3.c: New test.
* gcc.target/riscv/pr116150-4.c: New test.
---
gcc/common/config/riscv/riscv-common.cc | 8 --------
gcc/config/riscv/arch-canonicalize | 8 --------
gcc/config/riscv/riscv.cc | 14 ++++++++++++++
gcc/testsuite/gcc.target/riscv/pr116150-1.c | 9 +++++++++
gcc/testsuite/gcc.target/riscv/pr116150-2.c | 8 ++++++++
gcc/testsuite/gcc.target/riscv/pr116150-3.c | 8 ++++++++
gcc/testsuite/gcc.target/riscv/pr116150-4.c | 8 ++++++++
.../base/target_attribute_v_with_intrinsic-47.c | 2 +-
.../base/target_attribute_v_with_intrinsic-48.c | 2 +-
.../base/target_attribute_v_with_intrinsic-49.c | 2 +-
.../base/target_attribute_v_with_intrinsic-50.c | 2 +-
.../base/target_attribute_v_with_intrinsic-51.c | 2 +-
.../base/target_attribute_v_with_intrinsic-52.c | 2 +-
.../base/target_attribute_v_with_intrinsic-53.c | 2 +-
.../gcc.target/riscv/rvv/base/zvbc-intrinsic.c | 2 +-
.../riscv/rvv/base/zvbc_vx_constraint-1.c | 2 +-
.../riscv/rvv/base/zvbc_vx_constraint-2.c | 2 +-
.../gcc.target/riscv/rvv/base/zvknhb-intrinsic.c | 2 +-
gcc/testsuite/gcc.target/riscv/zvbb.c | 4 ++--
gcc/testsuite/gcc.target/riscv/zvbc.c | 4 ++--
gcc/testsuite/gcc.target/riscv/zvkb.c | 4 ++--
gcc/testsuite/gcc.target/riscv/zvkg.c | 4 ++--
gcc/testsuite/gcc.target/riscv/zvkn-1.c | 4 ++--
gcc/testsuite/gcc.target/riscv/zvkn.c | 4 ++--
gcc/testsuite/gcc.target/riscv/zvknc-1.c | 4 ++--
gcc/testsuite/gcc.target/riscv/zvknc-2.c | 4 ++--
gcc/testsuite/gcc.target/riscv/zvknc.c | 4 ++--
gcc/testsuite/gcc.target/riscv/zvkned.c | 4 ++--
gcc/testsuite/gcc.target/riscv/zvkng-1.c | 4 ++--
gcc/testsuite/gcc.target/riscv/zvkng-2.c | 4 ++--
gcc/testsuite/gcc.target/riscv/zvkng.c | 4 ++--
gcc/testsuite/gcc.target/riscv/zvknha.c | 4 ++--
gcc/testsuite/gcc.target/riscv/zvknhb.c | 4 ++--
gcc/testsuite/gcc.target/riscv/zvks-1.c | 4 ++--
gcc/testsuite/gcc.target/riscv/zvks.c | 4 ++--
gcc/testsuite/gcc.target/riscv/zvksc-1.c | 4 ++--
gcc/testsuite/gcc.target/riscv/zvksc-2.c | 4 ++--
gcc/testsuite/gcc.target/riscv/zvksc.c | 4 ++--
gcc/testsuite/gcc.target/riscv/zvksed.c | 4 ++--
gcc/testsuite/gcc.target/riscv/zvksg-1.c | 4 ++--
gcc/testsuite/gcc.target/riscv/zvksg-2.c | 4 ++--
gcc/testsuite/gcc.target/riscv/zvksg.c | 4 ++--
gcc/testsuite/gcc.target/riscv/zvksh.c | 4 ++--
43 files changed, 108 insertions(+), 77 deletions(-)
create mode 100644 gcc/testsuite/gcc.target/riscv/pr116150-1.c
create mode 100644 gcc/testsuite/gcc.target/riscv/pr116150-2.c
create mode 100644 gcc/testsuite/gcc.target/riscv/pr116150-3.c
create mode 100644 gcc/testsuite/gcc.target/riscv/pr116150-4.c
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"
--
2.43.0