[clang] af7231d - [RISCV] Make the order of tests in riscv-target-features.c eqaul to the extensions listed in the table in RISCVISAInfo.cpp. NFC.

Jim Lin via cfe-commits cfe-commits at lists.llvm.org
Thu Aug 17 22:01:16 PDT 2023


Author: Jim Lin
Date: 2023-08-18T12:56:12+08:00
New Revision: af7231d1835b3dbfd938c7fdff8188ce49a3b58b

URL: https://github.com/llvm/llvm-project/commit/af7231d1835b3dbfd938c7fdff8188ce49a3b58b
DIFF: https://github.com/llvm/llvm-project/commit/af7231d1835b3dbfd938c7fdff8188ce49a3b58b.diff

LOG: [RISCV] Make the order of tests in riscv-target-features.c eqaul to the extensions listed in the table in RISCVISAInfo.cpp. NFC.

1. Let the order of tests equal to listed in the extension table in RISCVISAInfo.cpp.
2. Separate non-experimental and experimental extensions.
3. Add missing tests for RV32.
4. Add missing tests for some extension.
5. Let line break style be the same.

Added: 
    

Modified: 
    clang/test/Preprocessor/riscv-target-features.c

Removed: 
    


################################################################################
diff  --git a/clang/test/Preprocessor/riscv-target-features.c b/clang/test/Preprocessor/riscv-target-features.c
index c2722fb34a1a72..02b67dc7944ba8 100644
--- a/clang/test/Preprocessor/riscv-target-features.c
+++ b/clang/test/Preprocessor/riscv-target-features.c
@@ -3,54 +3,122 @@
 // RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64i -x c -E -dM %s \
 // RUN: -o - | FileCheck %s
 
-// CHECK-NOT: __riscv_div {{.*$}}
-// CHECK-NOT: __riscv_m {{.*$}}
-// CHECK-NOT: __riscv_mul {{.*$}}
-// CHECK-NOT: __riscv_muldiv {{.*$}}
 // CHECK-NOT: __riscv_a {{.*$}}
 // CHECK-NOT: __riscv_atomic
-// CHECK-NOT: __riscv_f {{.*$}}
+// CHECK-NOT: __riscv_c {{.*$}}
+// CHECK-NOT: __riscv_compressed {{.*$}}
 // CHECK-NOT: __riscv_d {{.*$}}
+// CHECK-NOT: __riscv_f {{.*$}}
 // CHECK-NOT: __riscv_flen {{.*$}}
 // CHECK-NOT: __riscv_fdiv {{.*$}}
 // CHECK-NOT: __riscv_fsqrt {{.*$}}
-// CHECK-NOT: __riscv_c {{.*$}}
-// CHECK-NOT: __riscv_compressed {{.*$}}
-// CHECK-NOT: __riscv_zihintntl {{.*$}}
+// CHECK-NOT: __riscv_h {{.*$}}
+// CHECK-NOT: __riscv_div {{.*$}}
+// CHECK-NOT: __riscv_m {{.*$}}
+// CHECK-NOT: __riscv_mul {{.*$}}
+// CHECK-NOT: __riscv_muldiv {{.*$}}
+// CHECK-NOT: __riscv_svinval {{.*$}}
+// CHECK-NOT: __riscv_svnapot {{.*$}}
+// CHECK-NOT: __riscv_svpbmt {{.*$}}
+// CHECK-NOT: __riscv_v {{.*$}}
+// CHECK-NOT: __riscv_v_elen {{.*$}}
+// CHECK-NOT: __riscv_v_elen_fp {{.*$}}
+// CHECK-NOT: __riscv_v_intrinsic {{.*$}}
+// CHECK-NOT: __riscv_v_min_vlen {{.*$}}
+// CHECK-NOT: __riscv_vector {{.*$}}
+// CHECK-NOT: __riscv_xcvalu {{.*$}}
+// CHECK-NOT: __riscv_xcvbi {{.*$}}
+// CHECK-NOT: __riscv_xcvbitmanip {{.*$}}
+// CHECK-NOT: __riscv_xcvmac {{.*$}}
+// CHECK-NOT: __riscv_xcvsimd {{.*$}}
+// CHECK-NOT: __riscv_xsfcie {{.*$}}
+// CHECK-NOT: __riscv_xsfvcp {{.*$}}
+// CHECK-NOT: __riscv_xtheadba {{.*$}}
+// CHECK-NOT: __riscv_xtheadbb {{.*$}}
+// CHECK-NOT: __riscv_xtheadbs {{.*$}}
+// CHECK-NOT: __riscv_xtheadcmo {{.*$}}
+// CHECK-NOT: __riscv_xtheadcondmov {{.*$}}
+// CHECK-NOT: __riscv_xtheadfmemidx {{.*$}}
+// CHECK-NOT: __riscv_xtheadmac {{.*$}}
+// CHECK-NOT: __riscv_xtheadmemidx {{.*$}}
+// CHECK-NOT: __riscv_xtheadmempair {{.*$}}
+// CHECK-NOT: __riscv_xtheadsync {{.*$}}
+// CHECK-NOT: __riscv_xtheadvdot {{.*$}}
+// CHECK-NOT: __riscv_xventanacondops {{.*$}}
+// CHECK-NOT: __riscv_zawrs {{.*$}}
 // CHECK-NOT: __riscv_zba {{.*$}}
 // CHECK-NOT: __riscv_zbb {{.*$}}
 // CHECK-NOT: __riscv_zbc {{.*$}}
-// CHECK-NOT: __riscv_zbs {{.*$}}
-// CHECK-NOT: __riscv_zfh {{.*$}}
-// CHECK-NOT: __riscv_v {{.*$}}
-// CHECK-NOT: __riscv_vector {{.*$}}
-// CHECK-NOT: __riscv_v_intrinsic {{.*$}}
+// CHECK-NOT: __riscv_zbkb {{.*$}}
 // CHECK-NOT: __riscv_zbkc {{.*$}}
 // CHECK-NOT: __riscv_zbkx {{.*$}}
-// CHECK-NOT: __riscv_zbkb {{.*$}}
-// CHECK-NOT: __riscv_zkne {{.*$}}
-// CHECK-NOT: __riscv_zknd {{.*$}}
-// CHECK-NOT: __riscv_zknh {{.*$}}
-// CHECK-NOT: __riscv_zksh {{.*$}}
-// CHECK-NOT: __riscv_zksed {{.*$}}
-// CHECK-NOT: __riscv_zkr {{.*$}}
-// CHECK-NOT: __riscv_zkt {{.*$}}
-// CHECK-NOT: __riscv_zk {{.*$}}
-// CHECK-NOT: __riscv_zicbom {{.*$}}
-// CHECK-NOT: __riscv_zicboz {{.*$}}
-// CHECK-NOT: __riscv_svnapot {{.*$}}
-// CHECK-NOT: __riscv_svpbmt {{.*$}}
-// CHECK-NOT: __riscv_svinval {{.*$}}
-// CHECK-NOT: __riscv_xventanacondops {{.*$}}
+// CHECK-NOT: __riscv_zbs {{.*$}}
 // CHECK-NOT: __riscv_zca {{.*$}}
 // CHECK-NOT: __riscv_zcb {{.*$}}
 // CHECK-NOT: __riscv_zcd {{.*$}}
+// CHECK-NOT: __riscv_zce {{.*$}}
 // CHECK-NOT: __riscv_zcf {{.*$}}
 // CHECK-NOT: __riscv_zcmp {{.*$}}
 // CHECK-NOT: __riscv_zcmt {{.*$}}
-// CHECK-NOT: __riscv_h {{.*$}}
+// CHECK-NOT: __riscv_zdinx {{.*$}}
+// CHECK-NOT: __riscv_zfh {{.*$}}
+// CHECK-NOT: __riscv_zfhmin {{.*$}}
+// CHECK-NOT: __riscv_zfinx {{.*$}}
+// CHECK-NOT: __riscv_zhinx {{.*$}}
+// CHECK-NOT: __riscv_zhinxmin {{.*$}}
+// CHECK-NOT: __riscv_zicbom {{.*$}}
+// CHECK-NOT: __riscv_zicbop {{.*$}}
+// CHECK-NOT: __riscv_zicboz {{.*$}}
+// CHECK-NOT: __riscv_zicntr {{.*$}}
+// CHECK-NOT: __riscv_zicsr {{.*$}}
+// CHECK-NOT: __riscv_zifencei {{.*$}}
+// CHECK-NOT: __riscv_zihintntl {{.*$}}
+// CHECK-NOT: __riscv_zihintpause {{.*$}}
+// CHECK-NOT: __riscv_zihpm {{.*$}}
+// CHECK-NOT: __riscv_zk {{.*$}}
+// CHECK-NOT: __riscv_zkn {{.*$}}
+// CHECK-NOT: __riscv_zknd {{.*$}}
+// CHECK-NOT: __riscv_zkne {{.*$}}
+// CHECK-NOT: __riscv_zknh {{.*$}}
+// CHECK-NOT: __riscv_zkr {{.*$}}
+// CHECK-NOT: __riscv_zks {{.*$}}
+// CHECK-NOT: __riscv_zksed {{.*$}}
+// CHECK-NOT: __riscv_zksh {{.*$}}
+// CHECK-NOT: __riscv_zkt {{.*$}}
+// CHECK-NOT: __riscv_zmmul {{.*$}}
+// CHECK-NOT: __riscv_zve32f {{.*$}}
+// CHECK-NOT: __riscv_zve32x {{.*$}}
+// CHECK-NOT: __riscv_zve64d {{.*$}}
+// CHECK-NOT: __riscv_zve64f {{.*$}}
+// CHECK-NOT: __riscv_zve64x {{.*$}}
+// CHECK-NOT: __riscv_zvfh {{.*$}}
+// CHECK-NOT: __riscv_zvl32b {{.*$}}
+// CHECK-NOT: __riscv_zvl64b {{.*$}}
+// CHECK-NOT: __riscv_zvl128b {{.*$}}
+// CHECK-NOT: __riscv_zvl256b {{.*$}}
+// CHECK-NOT: __riscv_zvl512b {{.*$}}
+// CHECK-NOT: __riscv_zvl1024b {{.*$}}
+// CHECK-NOT: __riscv_zvl2048b {{.*$}}
+// CHECK-NOT: __riscv_zvl4096b {{.*$}}
+// CHECK-NOT: __riscv_zvl8192b {{.*$}}
+// CHECK-NOT: __riscv_zvl16384b {{.*$}}
+// CHECK-NOT: __riscv_zvl32768b {{.*$}}
+// CHECK-NOT: __riscv_zvl65536b {{.*$}}
+
+// Experimental extensions
+
+// CHECK-NOT: __riscv_smaia {{.*$}}
+// CHECK-NOT: __riscv_ssaia {{.*$}}
+// CHECK-NOT: __riscv_zacas {{.*$}}
+// CHECK-NOT: __riscv_zfa {{.*$}}
+// CHECK-NOT: __riscv_zfbfmin {{.*$}}
+// CHECK-NOT: __riscv_zicfilp {{.*$}}
+// CHECK-NOT: __riscv_zicond {{.*$}}
+// CHECK-NOT: __riscv_ztso {{.*$}}
 // CHECK-NOT: __riscv_zvbb {{.*$}}
 // CHECK-NOT: __riscv_zvbc {{.*$}}
+// CHECK-NOT: __riscv_zvfbfmin {{.*$}}
+// CHECK-NOT: __riscv_zvfbfwma {{.*$}}
 // CHECK-NOT: __riscv_zvkg {{.*$}}
 // CHECK-NOT: __riscv_zvkn {{.*$}}
 // CHECK-NOT: __riscv_zvknc {{.*$}}
@@ -64,93 +132,300 @@
 // CHECK-NOT: __riscv_zvksg {{.*$}}
 // CHECK-NOT: __riscv_zvksh {{.*$}}
 // CHECK-NOT: __riscv_zvkt {{.*$}}
-// CHECK-NOT: __riscv_zicond {{.*$}}
-// CHECK-NOT: __riscv_smaia {{.*$}}
-// CHECK-NOT: __riscv_ssaia {{.*$}}
-// CHECK-NOT: __riscv_zfbfmin {{.*$}}
-// CHECK-NOT: __riscv_zvfbfmin {{.*$}}
-// CHECK-NOT: __riscv_zvfbfwma {{.*$}}
-// CHECK-NOT: __riscv_zacas {{.*$}}
-// CHECK-NOT: __riscv_zicfilp {{.*$}}
-
-// RUN: %clang -target riscv32-unknown-linux-gnu -march=rv32i -x c -E -dM %s \
-// RUN: -o - | FileCheck %s
-// RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64i -x c -E -dM %s \
-// RUN: -o - | FileCheck %s
-// CHECK: __riscv_i 2001000{{$}}
-
-// RUN: %clang -target riscv32-unknown-linux-gnu -march=rv32im -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-M-EXT %s
-// RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64im -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-M-EXT %s
-// CHECK-M-EXT: __riscv_div 1
-// CHECK-M-EXT: __riscv_m 2000000{{$}}
-// CHECK-M-EXT: __riscv_mul 1
-// CHECK-M-EXT: __riscv_muldiv 1
 
-// RUN: %clang -target riscv32-unknown-linux-gnu -march=rv32ia -x c -E -dM %s \
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32ia -x c -E -dM %s \
 // RUN: -o - | FileCheck --check-prefix=CHECK-A-EXT %s
-// RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64ia -x c -E -dM %s \
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64ia -x c -E -dM %s \
 // RUN: -o - | FileCheck --check-prefix=CHECK-A-EXT %s
 // CHECK-A-EXT: __riscv_a 2001000{{$}}
 // CHECK-A-EXT: __riscv_atomic 1
 
-// RUN: %clang -target riscv32-unknown-linux-gnu -march=rv32if -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-F-EXT %s
-// RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64if -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-F-EXT %s
-// CHECK-F-EXT: __riscv_f 2002000{{$}}
-// CHECK-F-EXT: __riscv_fdiv 1
-// CHECK-F-EXT: __riscv_flen 32
-// CHECK-F-EXT: __riscv_fsqrt 1
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32ic -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-C-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64ic -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-C-EXT %s
+// CHECK-C-EXT: __riscv_c 2000000{{$}}
+// CHECK-C-EXT: __riscv_compressed 1
 
-// RUN: %clang -target riscv32-unknown-linux-gnu -march=rv32ifd -x c -E -dM %s \
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32ifd -x c -E -dM %s \
 // RUN: -o - | FileCheck --check-prefix=CHECK-D-EXT %s
-// RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64ifd -x c -E -dM %s \
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64ifd -x c -E -dM %s \
 // RUN: -o - | FileCheck --check-prefix=CHECK-D-EXT %s
 // CHECK-D-EXT: __riscv_d 2002000{{$}}
 // CHECK-D-EXT: __riscv_fdiv 1
 // CHECK-D-EXT: __riscv_flen 64
 // CHECK-D-EXT: __riscv_fsqrt 1
 
-// RUN: %clang -target riscv32-unknown-linux-gnu -march=rv32ifd -mabi=ilp32 -x c -E -dM %s \
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32if -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-F-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64if -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-F-EXT %s
+// CHECK-F-EXT: __riscv_f 2002000{{$}}
+// CHECK-F-EXT: __riscv_fdiv 1
+// CHECK-F-EXT: __riscv_flen 32
+// CHECK-F-EXT: __riscv_fsqrt 1
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32ifd -mabi=ilp32 -x c -E -dM %s \
 // RUN: -o - | FileCheck --check-prefix=CHECK-SOFT %s
-// RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64ifd -mabi=lp64 -x c -E -dM %s \
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64ifd -mabi=lp64 -x c -E -dM %s \
 // RUN: -o - | FileCheck --check-prefix=CHECK-SOFT %s
 // CHECK-SOFT: __riscv_float_abi_soft 1
 // CHECK-SOFT-NOT: __riscv_float_abi_single
 // CHECK-SOFT-NOT: __riscv_float_abi_double
 
-// RUN: %clang -target riscv32-unknown-linux-gnu -march=rv32ifd -mabi=ilp32f -x c -E -dM %s \
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32ifd -mabi=ilp32f -x c -E -dM %s \
 // RUN: -o - | FileCheck --check-prefix=CHECK-SINGLE %s
-// RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64ifd -mabi=lp64f -x c -E -dM %s \
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64ifd -mabi=lp64f -x c -E -dM %s \
 // RUN: -o - | FileCheck --check-prefix=CHECK-SINGLE %s
 // CHECK-SINGLE: __riscv_float_abi_single 1
 // CHECK-SINGLE-NOT: __riscv_float_abi_soft
 // CHECK-SINGLE-NOT: __riscv_float_abi_double
 
-// RUN: %clang -target riscv32-unknown-linux-gnu -march=rv32ifd -x c -E -dM %s \
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32ifd -x c -E -dM %s \
 // RUN: -o - | FileCheck --check-prefix=CHECK-DOUBLE %s
-// RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64ifd -x c -E -dM %s \
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64ifd -x c -E -dM %s \
 // RUN: -o - | FileCheck --check-prefix=CHECK-DOUBLE %s
 // CHECK-DOUBLE: __riscv_float_abi_double 1
 // CHECK-DOUBLE-NOT: __riscv_float_abi_soft
 // CHECK-DOUBLE-NOT: __riscv_float_abi_single
 
-// RUN: %clang -target riscv32-unknown-linux-gnu -march=rv32ic -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-C-EXT %s
-// RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64ic -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-C-EXT %s
-// CHECK-C-EXT: __riscv_c 2000000{{$}}
-// CHECK-C-EXT: __riscv_compressed 1
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32ih -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-H-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64ih -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-H-EXT %s
+// CHECK-H-EXT: __riscv_h 1000000{{$}}
 
 // RUN: %clang -target riscv32-unknown-linux-gnu \
-// RUN: -march=rv32izihintntl1p0 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZIHINTNTL %s
+// RUN: -march=rv32i -x c -E -dM %s \
+// RUN: -o - | FileCheck %s
 // RUN: %clang -target riscv64-unknown-linux-gnu \
-// RUN: -march=rv64izihintntl1p0 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZIHINTNTL %s
-// CHECK-ZIHINTNTL: __riscv_zihintntl 1000000{{$}}
+// RUN: -march=rv64i -x c -E -dM %s \
+// RUN: -o - | FileCheck %s
+// CHECK: __riscv_i 2001000{{$}}
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32im -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-M-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64im -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-M-EXT %s
+// CHECK-M-EXT: __riscv_div 1
+// CHECK-M-EXT: __riscv_m 2000000{{$}}
+// CHECK-M-EXT: __riscv_mul 1
+// CHECK-M-EXT: __riscv_muldiv 1
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32isvinval -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-SVINVAL-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64isvinval -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-SVINVAL-EXT %s
+// CHECK-SVINVAL-EXT: __riscv_svinval 1000000{{$}}
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32isvnapot -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-SVNAPOT-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64isvnapot -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-SVNAPOT-EXT %s
+// CHECK-SVNAPOT-EXT: __riscv_svnapot 1000000{{$}}
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32isvpbmt -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-SVPBMT-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64isvpbmt -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-SVPBMT-EXT %s
+// CHECK-SVPBMT-EXT: __riscv_svpbmt 1000000{{$}}
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32iv1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-V-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64iv1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-V-EXT %s
+// CHECK-V-EXT: __riscv_v 1000000{{$}}
+// CHECK-V-EXT: __riscv_v_elen 64
+// CHECK-V-EXT: __riscv_v_elen_fp 64
+// CHECK-V-EXT: __riscv_v_intrinsic 12000{{$}}
+// CHECK-V-EXT: __riscv_v_min_vlen 128
+// CHECK-V-EXT: __riscv_vector 1
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32ixcvalu -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XCVALU-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64ixcvalu -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XCVALU-EXT %s
+// CHECK-XCVALU-EXT: __riscv_xcvalu 1000000{{$}}
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32ixcvbi -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XCVBI-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64ixcvbi -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XCVBI-EXT %s
+// CHECK-XCVBI-EXT: __riscv_xcvbi 1000000{{$}}
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32ixcvbitmanip -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XCVBITMANIP-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64ixcvbitmanip -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XCVBITMANIP-EXT %s
+// CHECK-XCVBITMANIP-EXT: __riscv_xcvbitmanip 1000000{{$}}
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32ixcvmac -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XCVMAC-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64ixcvmac -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XCVMAC-EXT %s
+// CHECK-XCVMAC-EXT: __riscv_xcvmac 1000000{{$}}
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32ixcvsimd -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XCVSIMD-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64ixcvsimd -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XCVSIMD-EXT %s
+// CHECK-XCVSIMD-EXT: __riscv_xcvsimd 1000000{{$}}
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32ixsfcie -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XSFCIE-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64ixsfcie -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XSFCIE-EXT %s
+// CHECK-XSFCIE-EXT: __riscv_xsfcie 1000000{{$}}
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32ixsfvcp -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XSFVCP-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64ixsfvcp -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XSFVCP-EXT %s
+// CHECK-XSFVCP-EXT: __riscv_xsfvcp 1000000{{$}}
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32ixtheadba -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADBA-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64ixtheadba -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADBA-EXT %s
+// CHECK-XTHEADBA-EXT: __riscv_xtheadba 1000000{{$}}
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32ixtheadbb -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADBB-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64ixtheadbb -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADBB-EXT %s
+// CHECK-XTHEADBB-EXT: __riscv_xtheadbb 1000000{{$}}
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32ixtheadbs -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADBS-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64ixtheadbs -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADBS-EXT %s
+// CHECK-XTHEADBS-EXT: __riscv_xtheadbs 1000000{{$}}
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32ixtheadcmo -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADCMO-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64ixtheadcmo -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADCMO-EXT %s
+// CHECK-XTHEADCMO-EXT: __riscv_xtheadcmo 1000000{{$}}
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32ixtheadcondmov -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADCONDMOV-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64ixtheadcondmov -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADCONDMOV-EXT %s
+// CHECK-XTHEADCONDMOV-EXT: __riscv_xtheadcondmov 1000000{{$}}
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32ixtheadfmemidx -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADFMEMIDX-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64ixtheadfmemidx -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADFMEMIDX-EXT %s
+// CHECK-XTHEADFMEMIDX-EXT: __riscv_xtheadfmemidx 1000000{{$}}
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32ixtheadmac -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADMAC-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64ixtheadmac -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADMAC-EXT %s
+// CHECK-XTHEADMAC-EXT: __riscv_xtheadmac 1000000{{$}}
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32ixtheadmemidx -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADMEMIDX-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64ixtheadmemidx -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADMEMIDX-EXT %s
+// CHECK-XTHEADMEMIDX-EXT: __riscv_xtheadmemidx 1000000{{$}}
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32ixtheadmempair -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADMEMPAIR-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64ixtheadmempair -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADMEMPAIR-EXT %s
+// CHECK-XTHEADMEMPAIR-EXT: __riscv_xtheadmempair 1000000{{$}}
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32ixtheadsync -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADSYNC-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64ixtheadsync -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADSYNC-EXT %s
+// CHECK-XTHEADSYNC-EXT: __riscv_xtheadsync 1000000{{$}}
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32ixtheadvdot -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADVDOT-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64ixtheadvdot -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADVDOT-EXT %s
+// CHECK-XTHEADVDOT-EXT: __riscv_xtheadvdot 1000000{{$}}
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32ixventanacondops -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XVENTANACONDOPS-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64ixventanacondops -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-XVENTANACONDOPS-EXT %s
+// CHECK-XVENTANACONDOPS-EXT: __riscv_xventanacondops 1000000{{$}}
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32izawrs -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZAWRS-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64izawrs -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZAWRS-EXT %s
+// CHECK-ZAWRS-EXT: __riscv_zawrs 1000000{{$}}
 
 // RUN: %clang -target riscv32-unknown-linux-gnu \
 // RUN: -march=rv32izba1p0 -x c -E -dM %s \
@@ -194,6 +469,30 @@
 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBC-EXT %s
 // CHECK-ZBC-EXT: __riscv_zbc 1000000{{$}}
 
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32izbkb1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZBKB-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64izbkb1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZBKB-EXT %s
+// CHECK-ZBKB-EXT: __riscv_zbkb
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32izbkc1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZBKC-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64izbkc1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZBKC-EXT %s
+// CHECK-ZBKC-EXT: __riscv_zbkc
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32izbkx1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZBKX-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64izbkx1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZBKX-EXT %s
+// CHECK-ZBKX-EXT: __riscv_zbkx
+
 // RUN: %clang -target riscv32-unknown-linux-gnu \
 // RUN: -march=rv32izbs1p0 -x c -E -dM %s \
 // RUN: -o - | FileCheck --check-prefix=CHECK-ZBS-EXT %s
@@ -209,22 +508,69 @@
 // CHECK-ZBS-EXT: __riscv_zbs 1000000{{$}}
 
 // RUN: %clang -target riscv32-unknown-linux-gnu \
-// RUN: -march=rv32iv1p0 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-V-EXT %s
+// RUN: -march=rv32izca1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZCA-EXT %s
 // RUN: %clang -target riscv64-unknown-linux-gnu \
-// RUN: -march=rv64iv1p0 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-V-EXT %s
-// CHECK-V-EXT: __riscv_v 1000000{{$}}
-// CHECK-V-EXT: __riscv_vector 1
+// RUN: -march=rv64izca1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZCA-EXT %s
+// CHECK-ZCA-EXT: __riscv_zca 1000000{{$}}
 
 // RUN: %clang -target riscv32-unknown-linux-gnu \
-// RUN: -march=rv32izfhmin1p0 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZFHMIN-EXT %s
+// RUN: -march=rv32izcb1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZCB-EXT %s
 // RUN: %clang -target riscv64-unknown-linux-gnu \
-// RUN: -march=rv64izfhmin1p0 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZFHMIN-EXT %s
-// CHECK-ZFHMIN-EXT: __riscv_f 2002000{{$}}
-// CHECK-ZFHMIN-EXT: __riscv_zfhmin 1000000{{$}}
+// RUN: -march=rv64izcb1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZCB-EXT %s
+// CHECK-ZCB-EXT: __riscv_zca 1000000{{$}}
+// CHECK-ZCB-EXT: __riscv_zcb 1000000{{$}}
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32izcd1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZCD-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64izcd1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZCD-EXT %s
+// CHECK-ZCD-EXT: __riscv_zcd 1000000{{$}}
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32izce1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZCE-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64izce1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZCE-EXT %s
+// CHECK-ZCE-EXT: __riscv_zce 1000000{{$}}
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32izcf1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZCF-EXT %s
+// CHECK-ZCF-EXT: __riscv_zcf 1000000{{$}}
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32izcmp1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZCMP-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64izcmp1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZCMP-EXT %s
+// CHECK-ZCMP-EXT: __riscv_zca 1000000{{$}}
+// CHECK-ZCMP-EXT: __riscv_zcmp 1000000{{$}}
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32izcmt1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZCMT-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64izcmt1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZCMT-EXT %s
+// CHECK-ZCMT-EXT: __riscv_zca 1000000{{$}}
+// CHECK-ZCMT-EXT: __riscv_zcmt 1000000{{$}}
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32izdinx1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZDINX-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64izdinx1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZDINX-EXT %s
+// CHECK-ZDINX-EXT: __riscv_zdinx 1000000{{$}}
+// CHECK-ZDINX-EXT: __riscv_zfinx 1000000{{$}}
 
 // RUN: %clang -target riscv32-unknown-linux-gnu \
 // RUN: -march=rv32izfh1p0 -x c -E -dM %s \
@@ -236,309 +582,416 @@
 // CHECK-ZFH-EXT: __riscv_zfh 1000000{{$}}
 
 // RUN: %clang -target riscv32-unknown-linux-gnu \
-// RUN: -march=rv64iv1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-V-MINVLEN %s
-// CHECK-V-MINVLEN: __riscv_v_elen 64
-// CHECK-V-MINVLEN: __riscv_v_elen_fp 64
-// CHECK-V-MINVLEN: __riscv_v_min_vlen 128
-
-// RUN: %clang -target riscv32-unknown-linux-gnu \
-// RUN: -march=rv64iv1p0_zvl256b1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-ZVL256b %s
-// CHECK-ZVL256b: __riscv_v_min_vlen 256
+// RUN: -march=rv32izfhmin1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZFHMIN-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64izfhmin1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZFHMIN-EXT %s
+// CHECK-ZFHMIN-EXT: __riscv_f 2002000{{$}}
+// CHECK-ZFHMIN-EXT: __riscv_zfhmin 1000000{{$}}
 
 // RUN: %clang -target riscv32-unknown-linux-gnu \
-// RUN: -march=rv64iv1p0_zvl512b1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-ZVL512b %s
-// CHECK-ZVL512b: __riscv_v_min_vlen 512
+// RUN: -march=rv32izfinx1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZFINX-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64izfinx1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZFINX-EXT %s
+// CHECK-ZFINX-EXT: __riscv_zfinx 1000000{{$}}
 
 // RUN: %clang -target riscv32-unknown-linux-gnu \
-// RUN: -march=rv64iv1p0_zvl1024b1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-ZVL1024b %s
-// CHECK-ZVL1024b: __riscv_v_min_vlen 1024
+// RUN: -march=rv32izhinx1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZHINX-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64izhinx1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZHINX-EXT %s
+// CHECK-ZHINX-EXT: __riscv_zhinx 1000000{{$}}
 
 // RUN: %clang -target riscv32-unknown-linux-gnu \
-// RUN: -march=rv64iv1p0_zvl2048b1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-ZVL2048b %s
-// CHECK-ZVL2048b: __riscv_v_min_vlen 2048
+// RUN: -march=rv32izhinxmin1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZHINXMIN-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64izhinxmin1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZHINXMIN-EXT %s
+// CHECK-ZHINXMIN-EXT: __riscv_zhinxmin 1000000{{$}}
 
 // RUN: %clang -target riscv32-unknown-linux-gnu \
-// RUN: -march=rv64iv1p0_zvl4096b1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-ZVL4096b %s
-// CHECK-ZVL4096b: __riscv_v_min_vlen 4096
+// RUN: -march=rv32izicbom -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZICBOM-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64izicbom -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZICBOM-EXT %s
+// CHECK-ZICBOM-EXT: __riscv_zicbom 1000000{{$}}
 
 // RUN: %clang -target riscv32-unknown-linux-gnu \
-// RUN: -march=rv64iv1p0_zvl8192b1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-ZVL8192b %s
-// CHECK-ZVL8192b: __riscv_v_min_vlen 8192
+// RUN: -march=rv32izicbop -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZICBOP-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64izicbop -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZICBOP-EXT %s
+// CHECK-ZICBOP-EXT: __riscv_zicbop 1000000{{$}}
 
 // RUN: %clang -target riscv32-unknown-linux-gnu \
-// RUN: -march=rv64iv1p0_zvl16384b1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-ZVL16384b %s
-// CHECK-ZVL16384b: __riscv_v_min_vlen 16384
+// RUN: -march=rv32izicboz -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZICBOZ-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64izicboz -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZICBOZ-EXT %s
+// CHECK-ZICBOZ-EXT: __riscv_zicboz 1000000{{$}}
 
 // RUN: %clang -target riscv32-unknown-linux-gnu \
-// RUN: -march=rv64iv1p0_zvl32768b1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-ZVL32768b %s
-// CHECK-ZVL32768b: __riscv_v_min_vlen 32768
+// RUN: -march=rv32izicntr -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZICNTR-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64izicntr -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZICNTR-EXT %s
+// CHECK-ZICNTR-EXT: __riscv_zicntr 1000000{{$}}
 
 // RUN: %clang -target riscv32-unknown-linux-gnu \
-// RUN: -march=rv64iv1p0_zvl65536b1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-ZVL65536b %s
-// CHECK-ZVL65536b: __riscv_v_min_vlen 65536
-
+// RUN: -march=rv32izicsr2p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZICSR-EXT %s
 // RUN: %clang -target riscv64-unknown-linux-gnu \
-// RUN: -march=rv64ifdzve64d1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-ZVE64D-EXT %s
-// CHECK-ZVE64D-EXT: __riscv_v_elen 64
-// CHECK-ZVE64D-EXT: __riscv_v_elen_fp 64
-// CHECK-ZVE64D-EXT: __riscv_v_intrinsic 12000{{$}}
-// CHECK-ZVE64D-EXT: __riscv_v_min_vlen 64
-// CHECK-ZVE64D-EXT: __riscv_vector 1
-// CHECK-ZVE64D-EXT: __riscv_zve32f 1000000{{$}}
-// CHECK-ZVE64D-EXT: __riscv_zve32x 1000000{{$}}
-// CHECK-ZVE64D-EXT: __riscv_zve64d 1000000{{$}}
-// CHECK-ZVE64D-EXT: __riscv_zve64f 1000000{{$}}
-// CHECK-ZVE64D-EXT: __riscv_zve64x 1000000{{$}}
+// RUN: -march=rv64izicsr2p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZICSR-EXT %s
+// CHECK-ZICSR-EXT: __riscv_zicsr 2000000{{$}}
 
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32izifencei2p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZIFENCEI-EXT %s
 // RUN: %clang -target riscv64-unknown-linux-gnu \
-// RUN: -march=rv64ifzve64f1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-ZVE64F-EXT %s
-// CHECK-ZVE64F-EXT: __riscv_v_elen 64
-// CHECK-ZVE64F-EXT: __riscv_v_elen_fp 32
-// CHECK-ZVE64F-EXT: __riscv_v_intrinsic 12000{{$}}
-// CHECK-ZVE64F-EXT: __riscv_v_min_vlen 64
-// CHECK-ZVE64F-EXT: __riscv_vector 1
-// CHECK-ZVE64F-EXT: __riscv_zve32f 1000000{{$}}
-// CHECK-ZVE64F-EXT: __riscv_zve32x 1000000{{$}}
-// CHECK-ZVE64F-EXT: __riscv_zve64f 1000000{{$}}
-// CHECK-ZVE64F-EXT: __riscv_zve64x 1000000{{$}}
+// RUN: -march=rv64izifencei2p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZIFENCEI-EXT %s
+// CHECK-ZIFENCEI-EXT: __riscv_zifencei 2000000{{$}}
 
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32izihintntl1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZIHINTNTL-EXT %s
 // RUN: %clang -target riscv64-unknown-linux-gnu \
-// RUN: -march=rv64izve64x1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-ZVE64X-EXT %s
-// CHECK-ZVE64X-EXT: __riscv_v_elen 64
-// CHECK-ZVE64X-EXT: __riscv_v_elen_fp 0
-// CHECK-ZVE64X-EXT: __riscv_v_intrinsic 12000{{$}}
-// CHECK-ZVE64X-EXT: __riscv_v_min_vlen 64
-// CHECK-ZVE64X-EXT: __riscv_vector 1
-// CHECK-ZVE64X-EXT: __riscv_zve32x 1000000{{$}}
-// CHECK-ZVE64X-EXT: __riscv_zve64x 1000000{{$}}
+// RUN: -march=rv64izihintntl1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZIHINTNTL-EXT %s
+// CHECK-ZIHINTNTL-EXT: __riscv_zihintntl 1000000{{$}}
 
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32izihintpause2p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZIHINTPAUSE-EXT %s
 // RUN: %clang -target riscv64-unknown-linux-gnu \
-// RUN: -march=rv64ifzve32f1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-ZVE32F-EXT %s
-// CHECK-ZVE32F-EXT: __riscv_v_elen 32
-// CHECK-ZVE32F-EXT: __riscv_v_elen_fp 32
-// CHECK-ZVE32F-EXT: __riscv_v_intrinsic 12000{{$}}
-// CHECK-ZVE32F-EXT: __riscv_v_min_vlen 32
-// CHECK-ZVE32F-EXT: __riscv_vector 1
-// CHECK-ZVE32F-EXT: __riscv_zve32f 1000000{{$}}
-// CHECK-ZVE32F-EXT: __riscv_zve32x 1000000{{$}}
+// RUN: -march=rv64izihintpause2p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZIHINTPAUSE-EXT %s
+// CHECK-ZIHINTPAUSE-EXT: __riscv_zihintpause 2000000{{$}}
 
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32izk1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZK-EXT %s
 // RUN: %clang -target riscv64-unknown-linux-gnu \
-// RUN: -march=rv64izve32x1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-ZVE32X-EXT %s
-// CHECK-ZVE32X-EXT: __riscv_v_elen 32
-// CHECK-ZVE32X-EXT: __riscv_v_elen_fp 0
-// CHECK-ZVE32X-EXT: __riscv_v_intrinsic 12000{{$}}
-// CHECK-ZVE32X-EXT: __riscv_v_min_vlen 32
-// CHECK-ZVE32X-EXT: __riscv_vector 1
-// CHECK-ZVE32X-EXT: __riscv_zve32x 1000000{{$}}
+// RUN: -march=rv64izk1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZK-EXT %s
+// CHECK-ZK-EXT: __riscv_zk
 
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32i_zkn_zkt_zkr -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZK %s
 // RUN: %clang -target riscv64-unknown-linux-gnu \
-// RUN: -march=rv64izbkc1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-ZBKC-EXT %s
-// CHECK-ZBKC-EXT: __riscv_zbkc
+// RUN: -march=rv64i_zkn_zkt_zkr -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZK %s
+// CHECK-COMBINE-INTO-ZK: __riscv_zk 1
 
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32izkn1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZKN-EXT %s
 // RUN: %clang -target riscv64-unknown-linux-gnu \
-// RUN: -march=rv64izbkx1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-ZBKX-EXT %s
-// CHECK-ZBKX-EXT: __riscv_zbkx
+// RUN: -march=rv64izkn1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZKN-EXT %s
+// CHECK-ZKN-EXT: __riscv_zkn
 
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32i_zbkb_zbkc_zbkx_zkne_zknd_zknh -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZKN %s
 // RUN: %clang -target riscv64-unknown-linux-gnu \
-// RUN: -march=rv64izbkb1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-ZBKB-EXT %s
-// CHECK-ZBKB-EXT: __riscv_zbkb
+// RUN: -march=rv64i_zbkb_zbkc_zbkx_zkne_zknd_zknh -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZKN %s
+// CHECK-COMBINE-INTO-ZKN: __riscv_zkn 1
 
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32izknd1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZKND-EXT %s
 // RUN: %clang -target riscv64-unknown-linux-gnu \
-// RUN: -march=rv64izknd1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-ZKND-EXT %s
+// RUN: -march=rv64izknd1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZKND-EXT %s
 // CHECK-ZKND-EXT: __riscv_zknd
 
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32izkne1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZKNE-EXT %s
 // RUN: %clang -target riscv64-unknown-linux-gnu \
-// RUN: -march=rv64izkne1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-ZKNE-EXT %s
+// RUN: -march=rv64izkne1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZKNE-EXT %s
 // CHECK-ZKNE-EXT: __riscv_zkne
 
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32izknh1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZKNH-EXT %s
 // RUN: %clang -target riscv64-unknown-linux-gnu \
-// RUN: -march=rv64izknh1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-ZKNH-EXT %s
+// RUN: -march=rv64izknh1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZKNH-EXT %s
 // CHECK-ZKNH-EXT: __riscv_zknh
 
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32izkr1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZKR-EXT %s
 // RUN: %clang -target riscv64-unknown-linux-gnu \
-// RUN: -march=rv64izksh1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-ZKSH-EXT %s
-// CHECK-ZKSH-EXT: __riscv_zksh
+// RUN: -march=rv64izkr1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZKR-EXT %s
+// CHECK-ZKR-EXT: __riscv_zkr
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32i_zbkb_zbkc_zbkx_zksed_zksh -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZKS %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64i_zbkb_zbkc_zbkx_zksed_zksh -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZKS %s
+// CHECK-COMBINE-INTO-ZKS: __riscv_zks 1
+
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32izks1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZKS-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64izks1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZKS-EXT %s
+// CHECK-ZKS-EXT: __riscv_zks
 
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32izksed1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZKSED-EXT %s
 // RUN: %clang -target riscv64-unknown-linux-gnu \
-// RUN: -march=rv64izksed1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-ZKSED-EXT %s
+// RUN: -march=rv64izksed1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZKSED-EXT %s
 // CHECK-ZKSED-EXT: __riscv_zksed
 
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32izksh1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZKSH-EXT %s
 // RUN: %clang -target riscv64-unknown-linux-gnu \
-// RUN: -march=rv64izkr1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-ZKR-EXT %s
-// CHECK-ZKR-EXT: __riscv_zkr
+// RUN: -march=rv64izksh1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZKSH-EXT %s
+// CHECK-ZKSH-EXT: __riscv_zksh
 
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32izkt1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZKT-EXT %s
 // RUN: %clang -target riscv64-unknown-linux-gnu \
-// RUN: -march=rv64izkt1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-ZKT-EXT %s
+// RUN: -march=rv64izkt1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZKT-EXT %s
 // CHECK-ZKT-EXT: __riscv_zkt
 
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32izmmul1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZMMUL-EXT %s
 // RUN: %clang -target riscv64-unknown-linux-gnu \
-// RUN: -march=rv64izk1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-ZK-EXT %s
-// CHECK-ZK-EXT: __riscv_zk
+// RUN: -march=rv64izmmul1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZMMUL-EXT %s
+// CHECK-ZMMUL-EXT: __riscv_zmmul
 
 // RUN: %clang -target riscv32-unknown-linux-gnu \
-// RUN: -march=rv32i_zkn_zkt_zkr -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZK %s
+// RUN: -march=rv32ifzve32f1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVE32F-EXT %s
 // RUN: %clang -target riscv64-unknown-linux-gnu \
-// RUN: -march=rv64i_zkn_zkt_zkr -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZK %s
-// CHECK-COMBINE-INTO-ZK: __riscv_zk 1
+// RUN: -march=rv64ifzve32f1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVE32F-EXT %s
+// CHECK-ZVE32F-EXT: __riscv_v_elen 32
+// CHECK-ZVE32F-EXT: __riscv_v_elen_fp 32
+// CHECK-ZVE32F-EXT: __riscv_v_intrinsic 12000{{$}}
+// CHECK-ZVE32F-EXT: __riscv_v_min_vlen 32
+// CHECK-ZVE32F-EXT: __riscv_vector 1
+// CHECK-ZVE32F-EXT: __riscv_zve32f 1000000{{$}}
+// CHECK-ZVE32F-EXT: __riscv_zve32x 1000000{{$}}
 
 // RUN: %clang -target riscv32-unknown-linux-gnu \
-// RUN: -march=rv32i_zbkb_zbkc_zbkx_zkne_zknd_zknh -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZKN %s
+// RUN: -march=rv32izve32x1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVE32X-EXT %s
 // RUN: %clang -target riscv64-unknown-linux-gnu \
-// RUN: -march=rv64i_zbkb_zbkc_zbkx_zkne_zknd_zknh -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZKN %s
-// CHECK-COMBINE-INTO-ZKN: __riscv_zkn 1
+// RUN: -march=rv64izve32x1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVE32X-EXT %s
+// CHECK-ZVE32X-EXT: __riscv_v_elen 32
+// CHECK-ZVE32X-EXT: __riscv_v_elen_fp 0
+// CHECK-ZVE32X-EXT: __riscv_v_intrinsic 12000{{$}}
+// CHECK-ZVE32X-EXT: __riscv_v_min_vlen 32
+// CHECK-ZVE32X-EXT: __riscv_vector 1
+// CHECK-ZVE32X-EXT: __riscv_zve32x 1000000{{$}}
 
 // RUN: %clang -target riscv32-unknown-linux-gnu \
-// RUN: -march=rv32i_zbkb_zbkc_zbkx_zksed_zksh -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZKS %s
+// RUN: -march=rv32ifdzve64d1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVE64D-EXT %s
 // RUN: %clang -target riscv64-unknown-linux-gnu \
-// RUN: -march=rv64i_zbkb_zbkc_zbkx_zksed_zksh -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZKS %s
-// CHECK-COMBINE-INTO-ZKS: __riscv_zks 1
+// RUN: -march=rv64ifdzve64d1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVE64D-EXT %s
+// CHECK-ZVE64D-EXT: __riscv_v_elen 64
+// CHECK-ZVE64D-EXT: __riscv_v_elen_fp 64
+// CHECK-ZVE64D-EXT: __riscv_v_intrinsic 12000{{$}}
+// CHECK-ZVE64D-EXT: __riscv_v_min_vlen 64
+// CHECK-ZVE64D-EXT: __riscv_vector 1
+// CHECK-ZVE64D-EXT: __riscv_zve32f 1000000{{$}}
+// CHECK-ZVE64D-EXT: __riscv_zve32x 1000000{{$}}
+// CHECK-ZVE64D-EXT: __riscv_zve64d 1000000{{$}}
+// CHECK-ZVE64D-EXT: __riscv_zve64f 1000000{{$}}
+// CHECK-ZVE64D-EXT: __riscv_zve64x 1000000{{$}}
 
-// RUN: %clang -target riscv32 -march=rv32izicbom -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZICBOM-EXT %s
-// RUN: %clang -target riscv64 -march=rv64izicbom -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZICBOM-EXT %s
-// CHECK-ZICBOM-EXT: __riscv_zicbom 1000000{{$}}
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32ifzve64f1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVE64F-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64ifzve64f1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVE64F-EXT %s
+// CHECK-ZVE64F-EXT: __riscv_v_elen 64
+// CHECK-ZVE64F-EXT: __riscv_v_elen_fp 32
+// CHECK-ZVE64F-EXT: __riscv_v_intrinsic 12000{{$}}
+// CHECK-ZVE64F-EXT: __riscv_v_min_vlen 64
+// CHECK-ZVE64F-EXT: __riscv_vector 1
+// CHECK-ZVE64F-EXT: __riscv_zve32f 1000000{{$}}
+// CHECK-ZVE64F-EXT: __riscv_zve32x 1000000{{$}}
+// CHECK-ZVE64F-EXT: __riscv_zve64f 1000000{{$}}
+// CHECK-ZVE64F-EXT: __riscv_zve64x 1000000{{$}}
 
-// RUN: %clang -target riscv32 -march=rv32izicboz -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZICBOZ-EXT %s
-// RUN: %clang -target riscv64 -march=rv64izicboz -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZICBOZ-EXT %s
-// CHECK-ZICBOZ-EXT: __riscv_zicboz 1000000{{$}}
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32izve64x1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVE64X-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64izve64x1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVE64X-EXT %s
+// CHECK-ZVE64X-EXT: __riscv_v_elen 64
+// CHECK-ZVE64X-EXT: __riscv_v_elen_fp 0
+// CHECK-ZVE64X-EXT: __riscv_v_intrinsic 12000{{$}}
+// CHECK-ZVE64X-EXT: __riscv_v_min_vlen 64
+// CHECK-ZVE64X-EXT: __riscv_vector 1
+// CHECK-ZVE64X-EXT: __riscv_zve32x 1000000{{$}}
+// CHECK-ZVE64X-EXT: __riscv_zve64x 1000000{{$}}
 
-// RUN: %clang -target riscv32 -march=rv32izicbop -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZICBOP-EXT %s
-// RUN: %clang -target riscv64 -march=rv64izicbop -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZICBOP-EXT %s
-// CHECK-ZICBOP-EXT: __riscv_zicbop 1000000{{$}}
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32izvfh1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVFH-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64izvfh1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVFH-EXT %s
+// CHECK-ZVFH-EXT: __riscv_zvfh
 
 // RUN: %clang -target riscv32-unknown-linux-gnu \
-// RUN: -march=rv32izawrs -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZAWRS-EXT %s
+// RUN: -march=rv32izve32x1p0_zvl32b1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVL32b %s
 // RUN: %clang -target riscv64-unknown-linux-gnu \
-// RUN: -march=rv64izawrs -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZAWRS-EXT %s
-// CHECK-ZAWRS-EXT: __riscv_zawrs 1000000{{$}}
+// RUN: -march=rv64izve32x1p0_zvl32b1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVL32b %s
+// CHECK-ZVL32b: __riscv_v_min_vlen 32
 
-// RUN: %clang -target riscv32-unknown-linux-gnu -menable-experimental-extensions \
-// RUN: -march=rv32iztso0p1 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZTSO-EXT %s
-// RUN: %clang -target riscv64-unknown-linux-gnu -menable-experimental-extensions \
-// RUN: -march=rv64iztso0p1 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZTSO-EXT %s
-// CHECK-ZTSO-EXT: __riscv_ztso 1000{{$}}
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32izve32x1p0_zvl64b1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVL64b %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64izve32x1p0_zvl64b1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVL64b %s
+// CHECK-ZVL64b: __riscv_v_min_vlen 64
 
-// RUN: %clang -target riscv32 -march=rv32isvnapot -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-SVNAPOT-EXT %s
-// RUN: %clang -target riscv64 -march=rv64isvnapot -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-SVNAPOT-EXT %s
-// CHECK-SVNAPOT-EXT: __riscv_svnapot 1000000{{$}}
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32iv1p0_zvl128b1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVL128b %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64iv1p0_zvl128b1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVL128b %s
+// CHECK-ZVL128b: __riscv_v_min_vlen 128
 
-// RUN: %clang -target riscv32 -march=rv32isvpbmt -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-SVPBMT-EXT %s
-// RUN: %clang -target riscv64 -march=rv64isvpbmt -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-SVPBMT-EXT %s
-// CHECK-SVPBMT-EXT: __riscv_svpbmt 1000000{{$}}
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32iv1p0_zvl256b1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVL256b %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64iv1p0_zvl256b1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVL256b %s
+// CHECK-ZVL256b: __riscv_v_min_vlen 256
 
-// RUN: %clang -target riscv32 -march=rv32isvinval -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-SVINVAL-EXT %s
-// RUN: %clang -target riscv64 -march=rv64isvinval -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-SVINVAL-EXT %s
-// CHECK-SVINVAL-EXT: __riscv_svinval 1000000{{$}}
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32iv1p0_zvl512b1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVL512b %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64iv1p0_zvl512b1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVL512b %s
+// CHECK-ZVL512b: __riscv_v_min_vlen 512
 
-// RUN: %clang -target riscv32 -march=rv32ih -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-H-EXT %s
-// RUN: %clang -target riscv64 -march=rv64ih -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-H-EXT %s
-// CHECK-H-EXT: __riscv_h 1000000{{$}}
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32iv1p0_zvl1024b1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVL1024b %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64iv1p0_zvl1024b1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVL1024b %s
+// CHECK-ZVL1024b: __riscv_v_min_vlen 1024
 
-// RUN: %clang -target riscv64 -march=rv64ixventanacondops -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-XVENTANACONDOPS-EXT %s
-// CHECK-XVENTANACONDOPS-EXT: __riscv_xventanacondops 1000000{{$}}
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32iv1p0_zvl2048b1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVL2048b %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64iv1p0_zvl2048b1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVL2048b %s
+// CHECK-ZVL2048b: __riscv_v_min_vlen 2048
 
-// RUN: %clang -target riscv64 -march=rv64ixtheadvdot -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADVDOT-EXT %s
-// CHECK-XTHEADVDOT-EXT: __riscv_xtheadvdot 1000000{{$}}
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32iv1p0_zvl4096b1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVL4096b %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64iv1p0_zvl4096b1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVL4096b %s
+// CHECK-ZVL4096b: __riscv_v_min_vlen 4096
 
-// RUN: %clang -target riscv32 -march=rv32izca1p0 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZCA-EXT %s
-// RUN: %clang -target riscv64 -march=rv64izca1p0 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZCA-EXT %s
-// CHECK-ZCA-EXT: __riscv_zca 1000000{{$}}
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32iv1p0_zvl8192b1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVL8192b %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64iv1p0_zvl8192b1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVL8192b %s
+// CHECK-ZVL8192b: __riscv_v_min_vlen 8192
 
-// RUN: %clang -target riscv32 -march=rv32izcb1p0 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZCB-EXT %s
-// RUN: %clang -target riscv64 -march=rv64izcb1p0 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZCB-EXT %s
-// CHECK-ZCB-EXT: __riscv_zca 1000000{{$}}
-// CHECK-ZCB-EXT: __riscv_zcb 1000000{{$}}
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32iv1p0_zvl16384b1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVL16384b %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64iv1p0_zvl16384b1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVL16384b %s
+// CHECK-ZVL16384b: __riscv_v_min_vlen 16384
 
-// RUN: %clang -target riscv32 -march=rv32izcd1p0 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZCD-EXT %s
-// RUN: %clang -target riscv64 -march=rv64izcd1p0 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZCD-EXT %s
-// CHECK-ZCD-EXT: __riscv_zcd 1000000{{$}}
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32iv1p0_zvl32768b1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVL32768b %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64iv1p0_zvl32768b1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVL32768b %s
+// CHECK-ZVL32768b: __riscv_v_min_vlen 32768
 
-// RUN: %clang -target riscv32 -march=rv32izcf1p0 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZCF-EXT %s
-// CHECK-ZCF-EXT: __riscv_zcf 1000000{{$}}
+// RUN: %clang -target riscv32-unknown-linux-gnu \
+// RUN: -march=rv32iv1p0_zvl65536b1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVL65536b %s
+// RUN: %clang -target riscv64-unknown-linux-gnu \
+// RUN: -march=rv64iv1p0_zvl65536b1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVL65536b %s
+// CHECK-ZVL65536b: __riscv_v_min_vlen 65536
 
-// RUN: %clang -target riscv32 -march=rv32izcmp1p0 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZCMP-EXT %s
-// RUN: %clang -target riscv64 -march=rv64izcmp1p0 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZCMP-EXT %s
-// CHECK-ZCMP-EXT: __riscv_zca 1000000{{$}}
-// CHECK-ZCMP-EXT: __riscv_zcmp 1000000{{$}}
+// Experimental extensions
 
-// RUN: %clang -target riscv32 -march=rv32izcmt1p0 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZCMT-EXT %s
-// RUN: %clang -target riscv64 -march=rv64izcmt1p0 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZCMT-EXT %s
-// CHECK-ZCMT-EXT: __riscv_zca 1000000{{$}}
-// CHECK-ZCMT-EXT: __riscv_zcmt 1000000{{$}}
+// RUN: %clang -target riscv32 -menable-experimental-extensions \
+// RUN: -march=rv32ismaia1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-SMAIA-EXT %s
+// RUN: %clang -target riscv64 -menable-experimental-extensions \
+// RUN: -march=rv64ismaia1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-SMAIA-EXT %s
+// CHECK-SMAIA-EXT: __riscv_smaia  1000000{{$}}
 
-// RUN: %clang -target riscv32-unknown-linux-gnu -march=rv32izicsr2p0 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZICSR-EXT %s
-// RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64izicsr2p0 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZICSR-EXT %s
-// CHECK-ZICSR-EXT: __riscv_zicsr 2000000{{$}}
+// RUN: %clang -target riscv32 -menable-experimental-extensions \
+// RUN: -march=rv32issaia1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-SSAIA-EXT %s
+// RUN: %clang -target riscv64 -menable-experimental-extensions \
+// RUN: -march=rv64issaia1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-SSAIA-EXT %s
+// CHECK-SSAIA-EXT: __riscv_ssaia  1000000{{$}}
 
-// RUN: %clang -target riscv32-unknown-linux-gnu -march=rv32izifencei2p0 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZIFENCEI-EXT %s
-// RUN: %clang -target riscv64-unknown-linux-gnu -march=rv64izifencei2p0 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZIFENCEI-EXT %s
-// CHECK-ZIFENCEI-EXT: __riscv_zifencei 2000000{{$}}
+// RUN: %clang -target riscv32 -menable-experimental-extensions \
+// RUN: -march=rv32i_zacas1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZACAS-EXT %s
+// RUN: %clang -target riscv64 -menable-experimental-extensions \
+// RUN: -march=rv64i_zacas1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZACAS-EXT %s
+// CHECK-ZACAS-EXT: __riscv_zacas 1000000{{$}}
 
 // RUN: %clang -target riscv32-unknown-linux-gnu -menable-experimental-extensions \
 // RUN: -march=rv32izfa0p2 -x c -E -dM %s \
@@ -548,6 +1001,38 @@
 // RUN: -o - | FileCheck --check-prefix=CHECK-ZFA-EXT %s
 // CHECK-ZFA-EXT: __riscv_zfa 2000{{$}}
 
+// RUN: %clang -target riscv32 -menable-experimental-extensions \
+// RUN: -march=rv32izfbfmin0p8 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZFBFMIN-EXT %s
+// RUN: %clang -target riscv64 -menable-experimental-extensions \
+// RUN: -march=rv64izfbfmin0p8 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZFBFMIN-EXT %s
+// CHECK-ZFBFMIN-EXT: __riscv_zfbfmin 8000{{$}}
+
+// RUN: %clang -target riscv32 -menable-experimental-extensions \
+// RUN: -march=rv32i_zicfilp0p2 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZICFILP-EXT %s
+// RUN: %clang -target riscv64 -menable-experimental-extensions \
+// RUN: -march=rv64i_zicfilp0p2 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZICFILP-EXT %s
+// CHECK-ZICFILP-EXT: __riscv_zicfilp 2000{{$}}
+
+// RUN: %clang -target riscv32 -menable-experimental-extensions \
+// RUN: -march=rv32i_zicond1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZICOND-EXT %s
+// RUN: %clang -target riscv64 -menable-experimental-extensions \
+// RUN: -march=rv64i_zicond1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZICOND-EXT %s
+// CHECK-ZICOND-EXT: __riscv_zicond  1000000{{$}}
+
+// RUN: %clang -target riscv32-unknown-linux-gnu -menable-experimental-extensions \
+// RUN: -march=rv32iztso0p1 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZTSO-EXT %s
+// RUN: %clang -target riscv64-unknown-linux-gnu -menable-experimental-extensions \
+// RUN: -march=rv64iztso0p1 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZTSO-EXT %s
+// CHECK-ZTSO-EXT: __riscv_ztso 1000{{$}}
+
 // RUN: %clang -target riscv32 -menable-experimental-extensions \
 // RUN: -march=rv32i_zve64x_zvbb1p0 -x c -E -dM %s \
 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVBB-EXT %s
@@ -564,6 +1049,22 @@
 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVBC-EXT %s
 // CHECK-ZVBC-EXT: __riscv_zvbc  1000000{{$}}
 
+// RUN: %clang -target riscv32 -menable-experimental-extensions \
+// RUN: -march=rv32ifzvfbfmin0p8 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVFBFMIN-EXT %s
+// RUN: %clang -target riscv64 -menable-experimental-extensions \
+// RUN: -march=rv64ifzvfbfmin0p8 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVFBFMIN-EXT %s
+// CHECK-ZVFBFMIN-EXT: __riscv_zvfbfmin 8000{{$}}
+
+// RUN: %clang -target riscv32 -menable-experimental-extensions \
+// RUN: -march=rv32ifzvfbfwma0p8 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVFBFWMA-EXT %s
+// RUN: %clang -target riscv64 -menable-experimental-extensions \
+// RUN: -march=rv64ifzvfbfwma0p8 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVFBFWMA-EXT %s
+// CHECK-ZVFBFWMA-EXT: __riscv_zvfbfwma 8000{{$}}
+
 // RUN: %clang -target riscv32 -menable-experimental-extensions \
 // RUN: -march=rv32i_zve32x_zvkg1p0 -x c -E -dM %s \
 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKG-EXT %s
@@ -580,6 +1081,14 @@
 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKN-EXT %s
 // CHECK-ZVKN-EXT: __riscv_zvkn 1000000{{$}}
 
+// RUN: %clang -target riscv32 -menable-experimental-extensions \
+// RUN: -march=rv32iv_zvbb1p0_zvkned1p0_zvknhb1p0_zvkt1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKN %s
+// RUN: %clang -target riscv64 -menable-experimental-extensions \
+// RUN: -march=rv64iv_zvbb1p0_zvkned1p0_zvknhb1p0_zvkt1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKN %s
+// CHECK-COMBINE-INTO-ZVKN: __riscv_zvkn 1000000{{$}}
+
 // RUN: %clang -target riscv32 -menable-experimental-extensions \
 // RUN: -march=rv32i_zve64x_zvknc1p0 -x c -E -dM %s \
 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKNC-EXT %s
@@ -588,6 +1097,23 @@
 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKNC-EXT %s
 // CHECK-ZVKNC-EXT: __riscv_zvknc 1000000{{$}}
 
+// RUN: %clang -target riscv32 -menable-experimental-extensions \
+// RUN: -march=rv32iv_zvbb1p0_zvbc1p0_zvkned1p0_zvknhb1p0_zvkt1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKNC %s
+// RUN: %clang -target riscv64 -menable-experimental-extensions \
+// RUN: -march=rv64iv_zvbb1p0_zvbc1p0_zvkned1p0_zvknhb1p0_zvkt1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKNC %s
+// CHECK-COMBINE-INTO-ZVKNC: __riscv_zvkn 1000000{{$}}
+// CHECK-COMBINE-INTO-ZVKNC: __riscv_zvknc 1000000{{$}}
+
+// RUN: %clang -target riscv32 -menable-experimental-extensions \
+// RUN: -march=rv32i_zve32x_zvkned1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVKNED-EXT %s
+// RUN: %clang -target riscv64 -menable-experimental-extensions \
+// RUN: -march=rv64i_zve32x_zvkned1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-ZVKNED-EXT %s
+// CHECK-ZVKNED-EXT: __riscv_zvkned 1000000{{$}}
+
 // RUN: %clang -target riscv32 -menable-experimental-extensions \
 // RUN: -march=rv32i_zve64x_zvkng1p0 -x c -E -dM %s \
 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKNG-EXT %s
@@ -596,6 +1122,15 @@
 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKNG-EXT %s
 // CHECK-ZVKNG-EXT: __riscv_zvkng 1000000{{$}}
 
+// RUN: %clang -target riscv32 -menable-experimental-extensions \
+// RUN: -march=rv32iv_zvbb1p0_zvkg1p0_zvkned1p0_zvknhb1p0_zvkt1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKNG %s
+// RUN: %clang -target riscv64 -menable-experimental-extensions \
+// RUN: -march=rv64iv_zvbb1p0_zvkg1p0_zvkned1p0_zvknhb1p0_zvkt1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKNG %s
+// CHECK-COMBINE-INTO-ZVKNG: __riscv_zvkn 1000000{{$}}
+// CHECK-COMBINE-INTO-ZVKNG: __riscv_zvkng 1000000{{$}}
+
 // RUN: %clang -target riscv32 -menable-experimental-extensions \
 // RUN: -march=rv32i_zve32x_zvknha1p0 -x c -E -dM %s \
 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKNHA-EXT %s
@@ -612,14 +1147,6 @@
 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKNHB-EXT %s
 // CHECK-ZVKNHB-EXT: __riscv_zvknhb  1000000{{$}}
 
-// RUN: %clang -target riscv32 -menable-experimental-extensions \
-// RUN: -march=rv32i_zve32x_zvkned1p0 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZVKNED-EXT %s
-// RUN: %clang -target riscv64 -menable-experimental-extensions \
-// RUN: -march=rv64i_zve32x_zvkned1p0 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZVKNED-EXT %s
-// CHECK-ZVKNED-EXT: __riscv_zvkned 1000000{{$}}
-
 // RUN: %clang -target riscv32 -menable-experimental-extensions \
 // RUN: -march=rv32i_zve64x_zvks1p0 -x c -E -dM %s \
 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKS-EXT %s
@@ -628,6 +1155,14 @@
 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKS-EXT %s
 // CHECK-ZVKS-EXT: __riscv_zvks 1000000{{$}}
 
+// RUN: %clang -target riscv32 -menable-experimental-extensions \
+// RUN: -march=rv32iv_zvbb1p0_zvksed1p0_zvksh1p0_zvkt1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKS %s
+// RUN: %clang -target riscv64 -menable-experimental-extensions \
+// RUN: -march=rv64iv_zvbb1p0_zvksed1p0_zvksh1p0_zvkt1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKS %s
+// CHECK-COMBINE-INTO-ZVKS: __riscv_zvks 1000000{{$}}
+
 // RUN: %clang -target riscv32 -menable-experimental-extensions \
 // RUN: -march=rv32i_zve64x_zvksc1p0 -x c -E -dM %s \
 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKSC-EXT %s
@@ -636,6 +1171,15 @@
 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKSC-EXT %s
 // CHECK-ZVKSC-EXT: __riscv_zvksc 1000000{{$}}
 
+// RUN: %clang -target riscv32 -menable-experimental-extensions \
+// RUN: -march=rv32iv_zvbb1p0_zvbc1p0_zvksed1p0_zvksh1p0_zvkt1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKSC %s
+// RUN: %clang -target riscv64 -menable-experimental-extensions \
+// RUN: -march=rv64iv_zvbb1p0_zvbc1p0_zvksed1p0_zvksh1p0_zvkt1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKSC %s
+// CHECK-COMBINE-INTO-ZVKSC: __riscv_zvks 1000000{{$}}
+// CHECK-COMBINE-INTO-ZVKSC: __riscv_zvksc 1000000{{$}}
+
 // RUN: %clang -target riscv32 -menable-experimental-extensions \
 // RUN: -march=rv32i_zve32x_zvksed1p0 -x c -E -dM %s \
 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKSED-EXT %s
@@ -652,6 +1196,15 @@
 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKSG-EXT %s
 // CHECK-ZVKSG-EXT: __riscv_zvksg 1000000{{$}}
 
+// RUN: %clang -target riscv32 -menable-experimental-extensions \
+// RUN: -march=rv32iv_zvbb1p0_zvkg1p0_zvksed1p0_zvksh1p0_zvkt1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKSG %s
+// RUN: %clang -target riscv64 -menable-experimental-extensions \
+// RUN: -march=rv64iv_zvbb1p0_zvkg1p0_zvksed1p0_zvksh1p0_zvkt1p0 -x c -E -dM %s \
+// RUN: -o - | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKSG %s
+// CHECK-COMBINE-INTO-ZVKSG: __riscv_zvks 1000000{{$}}
+// CHECK-COMBINE-INTO-ZVKSG: __riscv_zvksg 1000000{{$}}
+
 // RUN: %clang -target riscv32 -menable-experimental-extensions \
 // RUN: -march=rv32i_zve32x_zvksh1p0 -x c -E -dM %s \
 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKSH-EXT %s
@@ -667,119 +1220,3 @@
 // RUN: -march=rv64i_zve32x_zvkt1p0 -x c -E -dM %s \
 // RUN: -o - | FileCheck --check-prefix=CHECK-ZVKT-EXT %s
 // CHECK-ZVKT-EXT: __riscv_zvkt 1000000{{$}}
-
-// RUN: %clang -target riscv32 -menable-experimental-extensions \
-// RUN: -march=rv32i_zicond1p0 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZICOND-EXT %s
-// RUN: %clang -target riscv64 -menable-experimental-extensions \
-// RUN: -march=rv64i_zicond1p0 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZICOND-EXT %s
-// CHECK-ZICOND-EXT: __riscv_zicond  1000000{{$}}
-
-// RUN: %clang -target riscv32 -menable-experimental-extensions \
-// RUN: -march=rv32ismaia1p0 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-SMAIA-EXT %s
-// RUN: %clang -target riscv64 -menable-experimental-extensions \
-// RUN: -march=rv64ismaia1p0 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-SMAIA-EXT %s
-// CHECK-SMAIA-EXT: __riscv_smaia  1000000{{$}}
-
-// RUN: %clang -target riscv32 -menable-experimental-extensions \
-// RUN: -march=rv32issaia1p0 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-SSAIA-EXT %s
-// RUN: %clang -target riscv64 -menable-experimental-extensions \
-// RUN: -march=rv64issaia1p0 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-SSAIA-EXT %s
-// CHECK-SSAIA-EXT: __riscv_ssaia  1000000{{$}}
-
-// RUN: %clang -target riscv32 -menable-experimental-extensions \
-// RUN: -march=rv32izfbfmin0p8 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZFBFMIN-EXT %s
-// RUN: %clang -target riscv64 -menable-experimental-extensions \
-// RUN: -march=rv64izfbfmin0p8 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZFBFMIN-EXT %s
-// CHECK-ZFBFMIN-EXT: __riscv_zfbfmin 8000{{$}}
-
-// RUN: %clang -target riscv32 -menable-experimental-extensions \
-// RUN: -march=rv32ifzvfbfmin0p8 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZVFBFMIN-EXT %s
-// RUN: %clang -target riscv64 -menable-experimental-extensions \
-// RUN: -march=rv64ifzvfbfmin0p8 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZVFBFMIN-EXT %s
-// CHECK-ZVFBFMIN-EXT: __riscv_zvfbfmin 8000{{$}}
-
-// RUN: %clang -target riscv32 -menable-experimental-extensions \
-// RUN: -march=rv32ifzvfbfwma0p8 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZVFBFWMA-EXT %s
-// RUN: %clang -target riscv64 -menable-experimental-extensions \
-// RUN: -march=rv64ifzvfbfwma0p8 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZVFBFWMA-EXT %s
-// CHECK-ZVFBFWMA-EXT: __riscv_zvfbfwma 8000{{$}}
-
-// RUN: %clang -target riscv32 -menable-experimental-extensions \
-// RUN: -march=rv32iv_zvbb1p0_zvkned1p0_zvknhb1p0_zvkt1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKN %s
-// RUN: %clang -target riscv64 -menable-experimental-extensions \
-// RUN: -march=rv64iv_zvbb1p0_zvkned1p0_zvknhb1p0_zvkt1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKN %s
-// CHECK-COMBINE-INTO-ZVKN: __riscv_zvkn 1000000{{$}}
-
-// RUN: %clang -target riscv32 -menable-experimental-extensions \
-// RUN: -march=rv32iv_zvbb1p0_zvbc1p0_zvkned1p0_zvknhb1p0_zvkt1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKNC %s
-// RUN: %clang -target riscv64 -menable-experimental-extensions \
-// RUN: -march=rv64iv_zvbb1p0_zvbc1p0_zvkned1p0_zvknhb1p0_zvkt1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKNC %s
-// CHECK-COMBINE-INTO-ZVKNC: __riscv_zvkn 1000000{{$}}
-// CHECK-COMBINE-INTO-ZVKNC: __riscv_zvknc 1000000{{$}}
-
-// RUN: %clang -target riscv32 -menable-experimental-extensions \
-// RUN: -march=rv32iv_zvbb1p0_zvkg1p0_zvkned1p0_zvknhb1p0_zvkt1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKNG %s
-// RUN: %clang -target riscv64 -menable-experimental-extensions \
-// RUN: -march=rv64iv_zvbb1p0_zvkg1p0_zvkned1p0_zvknhb1p0_zvkt1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKNG %s
-// CHECK-COMBINE-INTO-ZVKNG: __riscv_zvkn 1000000{{$}}
-// CHECK-COMBINE-INTO-ZVKNG: __riscv_zvkng 1000000{{$}}
-
-// RUN: %clang -target riscv32 -menable-experimental-extensions \
-// RUN: -march=rv32iv_zvbb1p0_zvksed1p0_zvksh1p0_zvkt1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKS %s
-// RUN: %clang -target riscv64 -menable-experimental-extensions \
-// RUN: -march=rv64iv_zvbb1p0_zvksed1p0_zvksh1p0_zvkt1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKS %s
-// CHECK-COMBINE-INTO-ZVKS: __riscv_zvks 1000000{{$}}
-
-// RUN: %clang -target riscv32 -menable-experimental-extensions \
-// RUN: -march=rv32iv_zvbb1p0_zvbc1p0_zvksed1p0_zvksh1p0_zvkt1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKSC %s
-// RUN: %clang -target riscv64 -menable-experimental-extensions \
-// RUN: -march=rv64iv_zvbb1p0_zvbc1p0_zvksed1p0_zvksh1p0_zvkt1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKSC %s
-// CHECK-COMBINE-INTO-ZVKSC: __riscv_zvks 1000000{{$}}
-// CHECK-COMBINE-INTO-ZVKSC: __riscv_zvksc 1000000{{$}}
-
-// RUN: %clang -target riscv32 -menable-experimental-extensions \
-// RUN: -march=rv32iv_zvbb1p0_zvkg1p0_zvksed1p0_zvksh1p0_zvkt1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKSG %s
-// RUN: %clang -target riscv64 -menable-experimental-extensions \
-// RUN: -march=rv64iv_zvbb1p0_zvkg1p0_zvksed1p0_zvksh1p0_zvkt1p0 -x c -E -dM %s -o - \
-// RUN: | FileCheck --check-prefix=CHECK-COMBINE-INTO-ZVKSG %s
-// CHECK-COMBINE-INTO-ZVKSG: __riscv_zvks 1000000{{$}}
-// CHECK-COMBINE-INTO-ZVKSG: __riscv_zvksg 1000000{{$}}
-
-// RUN: %clang -target riscv32 -menable-experimental-extensions \
-// RUN: -march=rv32i_zacas1p0 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZACAS-EXT %s
-// RUN: %clang -target riscv64 -menable-experimental-extensions \
-// RUN: -march=rv64i_zacas1p0 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZACAS-EXT %s
-// CHECK-ZACAS-EXT: __riscv_zacas 1000000{{$}}
-
-// RUN: %clang -target riscv32 -menable-experimental-extensions \
-// RUN: -march=rv32i_zicfilp0p2 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZICFILP-EXT %s
-// RUN: %clang -target riscv64 -menable-experimental-extensions \
-// RUN: -march=rv64i_zicfilp0p2 -x c -E -dM %s \
-// RUN: -o - | FileCheck --check-prefix=CHECK-ZICFILP-EXT %s
-// CHECK-ZICFILP-EXT: __riscv_zicfilp 2000{{$}}


        


More information about the cfe-commits mailing list