public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* [PATCH 0/1] RISC-V: Support CORE-V XCVSIMD extension
@ 2024-02-08 22:15 mary.bennett682
  2024-02-08 22:15 ` [PATCH 1/1] RISC-V: Add support for XCVsimd extension in CV32E40Pv2 mary.bennett682
  0 siblings, 1 reply; 2+ messages in thread
From: mary.bennett682 @ 2024-02-08 22:15 UTC (permalink / raw)
  To: binutils; +Cc: mary.bennett682

Thank you for reviewing this patch. I do not have merge permissions. If
all looks good, please merge on my behalf.

This patch series presents the comprehensive implementation of the SIMD
extension for CORE-V.

Tested with riscv-gnu-toolchain on binutils, ld, gas and gcc testsuites to
ensure its correctness and compatibility with the existing codebase.
However, your input, reviews, and suggestions are invaluable in making this
extension even more robust.

The CORE-V instructions are described in the specification [1] and work can be
found in the OpenHW group's Github repository [2].

[1] docs.openhwgroup.org/projects/cv32e40p-user-manual/en/latest/instruction_set_extensions.html

[2] github.com/openhwgroup/corev-binutils-gdb

Contributors:
  Mary Bennett <mary.bennett@embecosm.com>
  Nandni Jamnadas <nandni.jamnadas@embecosm.com>
  Pietra Ferreira <pietra.ferreira@embecosm.com>
  Charlie Keaney
  Jessica Mills
  Craig Blackmore <craig.blackmore@embecosm.com>
  Simon Cook <simon.cook@embecosm.com>
  Jeremy Bennett <jeremy.bennett@embecosm.com>
  Helene Chelin <helene.chelin@embecosm.com>

RISC-V: Add support for XCVsimd extension in CV32E40Pv2

 bfd/elfxx-riscv.c                             |   5 +
 gas/config/tc-riscv.c                         |  96 +++-
 gas/doc/c-riscv.texi                          |   5 +
 gas/testsuite/gas/riscv/cv-simd-abs-b-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-abs-b-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-abs-b-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-abs-b-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-abs-b-pass.s  |   8 +
 gas/testsuite/gas/riscv/cv-simd-abs-h-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-abs-h-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-abs-h-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-abs-h-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-abs-h-pass.s  |   8 +
 gas/testsuite/gas/riscv/cv-simd-add-b-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-add-b-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-add-b-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-add-b-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-add-b-pass.s  |   8 +
 .../gas/riscv/cv-simd-add-div2-fail.d         |   3 +
 .../gas/riscv/cv-simd-add-div2-fail.l         |   3 +
 .../gas/riscv/cv-simd-add-div2-fail.s         |   4 +
 .../gas/riscv/cv-simd-add-div2-pass.d         |  16 +
 .../gas/riscv/cv-simd-add-div2-pass.s         |   8 +
 .../gas/riscv/cv-simd-add-div4-fail.d         |   3 +
 .../gas/riscv/cv-simd-add-div4-fail.l         |   3 +
 .../gas/riscv/cv-simd-add-div4-fail.s         |   4 +
 .../gas/riscv/cv-simd-add-div4-pass.d         |  16 +
 .../gas/riscv/cv-simd-add-div4-pass.s         |   8 +
 .../gas/riscv/cv-simd-add-div8-fail.d         |   3 +
 .../gas/riscv/cv-simd-add-div8-fail.l         |   3 +
 .../gas/riscv/cv-simd-add-div8-fail.s         |   4 +
 .../gas/riscv/cv-simd-add-div8-pass.d         |  16 +
 .../gas/riscv/cv-simd-add-div8-pass.s         |   8 +
 gas/testsuite/gas/riscv/cv-simd-add-h-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-add-h-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-add-h-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-add-h-pass.d  |  15 +
 gas/testsuite/gas/riscv/cv-simd-add-h-pass.s  |   8 +
 .../gas/riscv/cv-simd-add-sc-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-add-sc-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-add-sc-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-add-sc-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-add-sc-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-add-sc-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-add-sc-h-fail.l         |   3 +
 .../gas/riscv/cv-simd-add-sc-h-fail.s         |   4 +
 .../gas/riscv/cv-simd-add-sc-h-pass.d         |  16 +
 .../gas/riscv/cv-simd-add-sc-h-pass.s         |   8 +
 .../gas/riscv/cv-simd-add-sci-b-fail.d        |   3 +
 .../gas/riscv/cv-simd-add-sci-b-fail.l        |   5 +
 .../gas/riscv/cv-simd-add-sci-b-fail.s        |   7 +
 .../gas/riscv/cv-simd-add-sci-b-pass.d        |  19 +
 .../gas/riscv/cv-simd-add-sci-b-pass.s        |  12 +
 .../gas/riscv/cv-simd-add-sci-h-fail.d        |   3 +
 .../gas/riscv/cv-simd-add-sci-h-fail.l        |   5 +
 .../gas/riscv/cv-simd-add-sci-h-fail.s        |   7 +
 .../gas/riscv/cv-simd-add-sci-h-pass.d        |  19 +
 .../gas/riscv/cv-simd-add-sci-h-pass.s        |  12 +
 gas/testsuite/gas/riscv/cv-simd-and-b-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-and-b-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-and-b-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-and-b-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-and-b-pass.s  |   8 +
 gas/testsuite/gas/riscv/cv-simd-and-h-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-and-h-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-and-h-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-and-h-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-and-h-pass.s  |   8 +
 .../gas/riscv/cv-simd-and-sc-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-and-sc-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-and-sc-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-and-sc-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-and-sc-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-and-sc-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-and-sc-h-fail.l         |   3 +
 .../gas/riscv/cv-simd-and-sc-h-fail.s         |   4 +
 .../gas/riscv/cv-simd-and-sc-h-pass.d         |  16 +
 .../gas/riscv/cv-simd-and-sc-h-pass.s         |   8 +
 .../gas/riscv/cv-simd-and-sci-b-fail.d        |   3 +
 .../gas/riscv/cv-simd-and-sci-b-fail.l        |   5 +
 .../gas/riscv/cv-simd-and-sci-b-fail.s        |   7 +
 .../gas/riscv/cv-simd-and-sci-b-pass.d        |  19 +
 .../gas/riscv/cv-simd-and-sci-b-pass.s        |  12 +
 .../gas/riscv/cv-simd-and-sci-h-fail.d        |   3 +
 .../gas/riscv/cv-simd-and-sci-h-fail.l        |   5 +
 .../gas/riscv/cv-simd-and-sci-h-fail.s        |   7 +
 .../gas/riscv/cv-simd-and-sci-h-pass.d        |  19 +
 .../gas/riscv/cv-simd-and-sci-h-pass.s        |  12 +
 gas/testsuite/gas/riscv/cv-simd-avg-b-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-avg-b-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-avg-b-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-avg-b-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-avg-b-pass.s  |   8 +
 gas/testsuite/gas/riscv/cv-simd-avg-h-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-avg-h-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-avg-h-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-avg-h-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-avg-h-pass.s  |   8 +
 .../gas/riscv/cv-simd-avg-sc-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-avg-sc-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-avg-sc-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-avg-sc-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-avg-sc-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-avg-sc-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-avg-sc-h-fail.l         |   3 +
 .../gas/riscv/cv-simd-avg-sc-h-fail.s         |   4 +
 .../gas/riscv/cv-simd-avg-sc-h-pass.d         |  16 +
 .../gas/riscv/cv-simd-avg-sc-h-pass.s         |   8 +
 .../gas/riscv/cv-simd-avg-sci-b-fail.d        |   3 +
 .../gas/riscv/cv-simd-avg-sci-b-fail.l        |   5 +
 .../gas/riscv/cv-simd-avg-sci-b-fail.s        |   7 +
 .../gas/riscv/cv-simd-avg-sci-b-pass.d        |  19 +
 .../gas/riscv/cv-simd-avg-sci-b-pass.s        |  12 +
 .../gas/riscv/cv-simd-avg-sci-h-fail.d        |   3 +
 .../gas/riscv/cv-simd-avg-sci-h-fail.l        |   5 +
 .../gas/riscv/cv-simd-avg-sci-h-fail.s        |   7 +
 .../gas/riscv/cv-simd-avg-sci-h-pass.d        |  19 +
 .../gas/riscv/cv-simd-avg-sci-h-pass.s        |  12 +
 gas/testsuite/gas/riscv/cv-simd-avgu-b-fail.d |   3 +
 gas/testsuite/gas/riscv/cv-simd-avgu-b-fail.l |   3 +
 gas/testsuite/gas/riscv/cv-simd-avgu-b-fail.s |   4 +
 gas/testsuite/gas/riscv/cv-simd-avgu-b-pass.d |  16 +
 gas/testsuite/gas/riscv/cv-simd-avgu-b-pass.s |   8 +
 gas/testsuite/gas/riscv/cv-simd-avgu-h-fail.d |   3 +
 gas/testsuite/gas/riscv/cv-simd-avgu-h-fail.l |   3 +
 gas/testsuite/gas/riscv/cv-simd-avgu-h-fail.s |   4 +
 gas/testsuite/gas/riscv/cv-simd-avgu-h-pass.d |  16 +
 gas/testsuite/gas/riscv/cv-simd-avgu-h-pass.s |   8 +
 .../gas/riscv/cv-simd-avgu-sc-b-fail.d        |   3 +
 .../gas/riscv/cv-simd-avgu-sc-b-fail.l        |   3 +
 .../gas/riscv/cv-simd-avgu-sc-b-fail.s        |   4 +
 .../gas/riscv/cv-simd-avgu-sc-b-pass.d        |  16 +
 .../gas/riscv/cv-simd-avgu-sc-b-pass.s        |   8 +
 .../gas/riscv/cv-simd-avgu-sc-h-fail.d        |   3 +
 .../gas/riscv/cv-simd-avgu-sc-h-fail.l        |   3 +
 .../gas/riscv/cv-simd-avgu-sc-h-fail.s        |   4 +
 .../gas/riscv/cv-simd-avgu-sc-h-pass.d        |  16 +
 .../gas/riscv/cv-simd-avgu-sc-h-pass.s        |   8 +
 .../gas/riscv/cv-simd-avgu-sci-b-fail.d       |   3 +
 .../gas/riscv/cv-simd-avgu-sci-b-fail.l       |   5 +
 .../gas/riscv/cv-simd-avgu-sci-b-fail.s       |   7 +
 .../gas/riscv/cv-simd-avgu-sci-b-pass.d       |  18 +
 .../gas/riscv/cv-simd-avgu-sci-b-pass.s       |  11 +
 .../gas/riscv/cv-simd-avgu-sci-h-fail.d       |   3 +
 .../gas/riscv/cv-simd-avgu-sci-h-fail.l       |   5 +
 .../gas/riscv/cv-simd-avgu-sci-h-fail.s       |   7 +
 .../gas/riscv/cv-simd-avgu-sci-h-pass.d       |  18 +
 .../gas/riscv/cv-simd-avgu-sci-h-pass.s       |  11 +
 .../gas/riscv/cv-simd-cmpeq-b-fail.d          |   3 +
 .../gas/riscv/cv-simd-cmpeq-b-fail.l          |   3 +
 .../gas/riscv/cv-simd-cmpeq-b-fail.s          |   4 +
 .../gas/riscv/cv-simd-cmpeq-b-pass.d          |  16 +
 .../gas/riscv/cv-simd-cmpeq-b-pass.s          |   8 +
 .../gas/riscv/cv-simd-cmpeq-h-fail.d          |   3 +
 .../gas/riscv/cv-simd-cmpeq-h-fail.l          |   3 +
 .../gas/riscv/cv-simd-cmpeq-h-fail.s          |   4 +
 .../gas/riscv/cv-simd-cmpeq-h-pass.d          |  16 +
 .../gas/riscv/cv-simd-cmpeq-h-pass.s          |   8 +
 .../gas/riscv/cv-simd-cmpeq-sc-b-fail.d       |   3 +
 .../gas/riscv/cv-simd-cmpeq-sc-b-fail.l       |   3 +
 .../gas/riscv/cv-simd-cmpeq-sc-b-fail.s       |   4 +
 .../gas/riscv/cv-simd-cmpeq-sc-b-pass.d       |  16 +
 .../gas/riscv/cv-simd-cmpeq-sc-b-pass.s       |   8 +
 .../gas/riscv/cv-simd-cmpeq-sc-h-fail.d       |   3 +
 .../gas/riscv/cv-simd-cmpeq-sc-h-fail.l       |   3 +
 .../gas/riscv/cv-simd-cmpeq-sc-h-fail.s       |   4 +
 .../gas/riscv/cv-simd-cmpeq-sc-h-pass.d       |  16 +
 .../gas/riscv/cv-simd-cmpeq-sc-h-pass.s       |   8 +
 .../gas/riscv/cv-simd-cmpeq-sci-b-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmpeq-sci-b-fail.l      |   5 +
 .../gas/riscv/cv-simd-cmpeq-sci-b-fail.s      |   7 +
 .../gas/riscv/cv-simd-cmpeq-sci-b-pass.d      |  19 +
 .../gas/riscv/cv-simd-cmpeq-sci-b-pass.s      |  12 +
 .../gas/riscv/cv-simd-cmpeq-sci-h-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmpeq-sci-h-fail.l      |   5 +
 .../gas/riscv/cv-simd-cmpeq-sci-h-fail.s      |   7 +
 .../gas/riscv/cv-simd-cmpeq-sci-h-pass.d      |  19 +
 .../gas/riscv/cv-simd-cmpeq-sci-h-pass.s      |  12 +
 .../gas/riscv/cv-simd-cmpge-b-fail.d          |   3 +
 .../gas/riscv/cv-simd-cmpge-b-fail.l          |   3 +
 .../gas/riscv/cv-simd-cmpge-b-fail.s          |   4 +
 .../gas/riscv/cv-simd-cmpge-b-pass.d          |  16 +
 .../gas/riscv/cv-simd-cmpge-b-pass.s          |   8 +
 .../gas/riscv/cv-simd-cmpge-h-fail.d          |   3 +
 .../gas/riscv/cv-simd-cmpge-h-fail.l          |   3 +
 .../gas/riscv/cv-simd-cmpge-h-fail.s          |   4 +
 .../gas/riscv/cv-simd-cmpge-h-pass.d          |  16 +
 .../gas/riscv/cv-simd-cmpge-h-pass.s          |   8 +
 .../gas/riscv/cv-simd-cmpge-sc-b-fail.d       |   3 +
 .../gas/riscv/cv-simd-cmpge-sc-b-fail.l       |   3 +
 .../gas/riscv/cv-simd-cmpge-sc-b-fail.s       |   4 +
 .../gas/riscv/cv-simd-cmpge-sc-b-pass.d       |  16 +
 .../gas/riscv/cv-simd-cmpge-sc-b-pass.s       |   8 +
 .../gas/riscv/cv-simd-cmpge-sc-h-fail.d       |   3 +
 .../gas/riscv/cv-simd-cmpge-sc-h-fail.l       |   3 +
 .../gas/riscv/cv-simd-cmpge-sc-h-fail.s       |   4 +
 .../gas/riscv/cv-simd-cmpge-sc-h-pass.d       |  16 +
 .../gas/riscv/cv-simd-cmpge-sc-h-pass.s       |   8 +
 .../gas/riscv/cv-simd-cmpge-sci-b-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmpge-sci-b-fail.l      |   5 +
 .../gas/riscv/cv-simd-cmpge-sci-b-fail.s      |   7 +
 .../gas/riscv/cv-simd-cmpge-sci-b-pass.d      |  19 +
 .../gas/riscv/cv-simd-cmpge-sci-b-pass.s      |  12 +
 .../gas/riscv/cv-simd-cmpge-sci-h-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmpge-sci-h-fail.l      |   5 +
 .../gas/riscv/cv-simd-cmpge-sci-h-fail.s      |   7 +
 .../gas/riscv/cv-simd-cmpge-sci-h-pass.d      |  19 +
 .../gas/riscv/cv-simd-cmpge-sci-h-pass.s      |  12 +
 .../gas/riscv/cv-simd-cmpgeu-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-cmpgeu-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-cmpgeu-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-cmpgeu-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-cmpgeu-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-cmpgeu-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-cmpgeu-h-fail.l         |   3 +
 .../gas/riscv/cv-simd-cmpgeu-h-fail.s         |   4 +
 .../gas/riscv/cv-simd-cmpgeu-h-pass.d         |  16 +
 .../gas/riscv/cv-simd-cmpgeu-h-pass.s         |   8 +
 .../gas/riscv/cv-simd-cmpgeu-sc-b-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmpgeu-sc-b-fail.l      |   3 +
 .../gas/riscv/cv-simd-cmpgeu-sc-b-fail.s      |   4 +
 .../gas/riscv/cv-simd-cmpgeu-sc-b-pass.d      |  16 +
 .../gas/riscv/cv-simd-cmpgeu-sc-b-pass.s      |   8 +
 .../gas/riscv/cv-simd-cmpgeu-sc-h-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmpgeu-sc-h-fail.l      |   3 +
 .../gas/riscv/cv-simd-cmpgeu-sc-h-fail.s      |   4 +
 .../gas/riscv/cv-simd-cmpgeu-sc-h-pass.d      |  16 +
 .../gas/riscv/cv-simd-cmpgeu-sc-h-pass.s      |   8 +
 .../gas/riscv/cv-simd-cmpgeu-sci-b-fail.d     |   3 +
 .../gas/riscv/cv-simd-cmpgeu-sci-b-fail.l     |   5 +
 .../gas/riscv/cv-simd-cmpgeu-sci-b-fail.s     |   7 +
 .../gas/riscv/cv-simd-cmpgeu-sci-b-pass.d     |  18 +
 .../gas/riscv/cv-simd-cmpgeu-sci-b-pass.s     |  11 +
 .../gas/riscv/cv-simd-cmpgeu-sci-h-fail.d     |   3 +
 .../gas/riscv/cv-simd-cmpgeu-sci-h-fail.l     |   5 +
 .../gas/riscv/cv-simd-cmpgeu-sci-h-fail.s     |   7 +
 .../gas/riscv/cv-simd-cmpgeu-sci-h-pass.d     |  18 +
 .../gas/riscv/cv-simd-cmpgeu-sci-h-pass.s     |  11 +
 .../gas/riscv/cv-simd-cmpgt-b-fail.d          |   3 +
 .../gas/riscv/cv-simd-cmpgt-b-fail.l          |   3 +
 .../gas/riscv/cv-simd-cmpgt-b-fail.s          |   4 +
 .../gas/riscv/cv-simd-cmpgt-b-pass.d          |  16 +
 .../gas/riscv/cv-simd-cmpgt-b-pass.s          |   8 +
 .../gas/riscv/cv-simd-cmpgt-h-fail.d          |   3 +
 .../gas/riscv/cv-simd-cmpgt-h-fail.l          |   3 +
 .../gas/riscv/cv-simd-cmpgt-h-fail.s          |   4 +
 .../gas/riscv/cv-simd-cmpgt-h-pass.d          |  16 +
 .../gas/riscv/cv-simd-cmpgt-h-pass.s          |   8 +
 .../gas/riscv/cv-simd-cmpgt-sc-b-fail.d       |   3 +
 .../gas/riscv/cv-simd-cmpgt-sc-b-fail.l       |   3 +
 .../gas/riscv/cv-simd-cmpgt-sc-b-fail.s       |   4 +
 .../gas/riscv/cv-simd-cmpgt-sc-b-pass.d       |  16 +
 .../gas/riscv/cv-simd-cmpgt-sc-b-pass.s       |   8 +
 .../gas/riscv/cv-simd-cmpgt-sc-h-fail.d       |   3 +
 .../gas/riscv/cv-simd-cmpgt-sc-h-fail.l       |   3 +
 .../gas/riscv/cv-simd-cmpgt-sc-h-fail.s       |   4 +
 .../gas/riscv/cv-simd-cmpgt-sc-h-pass.d       |  16 +
 .../gas/riscv/cv-simd-cmpgt-sc-h-pass.s       |   8 +
 .../gas/riscv/cv-simd-cmpgt-sci-b-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmpgt-sci-b-fail.l      |   5 +
 .../gas/riscv/cv-simd-cmpgt-sci-b-fail.s      |   7 +
 .../gas/riscv/cv-simd-cmpgt-sci-b-pass.d      |  19 +
 .../gas/riscv/cv-simd-cmpgt-sci-b-pass.s      |  12 +
 .../gas/riscv/cv-simd-cmpgt-sci-h-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmpgt-sci-h-fail.l      |   5 +
 .../gas/riscv/cv-simd-cmpgt-sci-h-fail.s      |   7 +
 .../gas/riscv/cv-simd-cmpgt-sci-h-pass.d      |  19 +
 .../gas/riscv/cv-simd-cmpgt-sci-h-pass.s      |  12 +
 .../gas/riscv/cv-simd-cmpgtu-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-cmpgtu-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-cmpgtu-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-cmpgtu-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-cmpgtu-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-cmpgtu-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-cmpgtu-h-fail.l         |   3 +
 .../gas/riscv/cv-simd-cmpgtu-h-fail.s         |   4 +
 .../gas/riscv/cv-simd-cmpgtu-h-pass.d         |  16 +
 .../gas/riscv/cv-simd-cmpgtu-h-pass.s         |   8 +
 .../gas/riscv/cv-simd-cmpgtu-sc-b-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmpgtu-sc-b-fail.l      |   3 +
 .../gas/riscv/cv-simd-cmpgtu-sc-b-fail.s      |   4 +
 .../gas/riscv/cv-simd-cmpgtu-sc-b-pass.d      |  16 +
 .../gas/riscv/cv-simd-cmpgtu-sc-b-pass.s      |   8 +
 .../gas/riscv/cv-simd-cmpgtu-sc-h-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmpgtu-sc-h-fail.l      |   3 +
 .../gas/riscv/cv-simd-cmpgtu-sc-h-fail.s      |   4 +
 .../gas/riscv/cv-simd-cmpgtu-sc-h-pass.d      |  16 +
 .../gas/riscv/cv-simd-cmpgtu-sc-h-pass.s      |   8 +
 .../gas/riscv/cv-simd-cmpgtu-sci-b-fail.d     |   3 +
 .../gas/riscv/cv-simd-cmpgtu-sci-b-fail.l     |   5 +
 .../gas/riscv/cv-simd-cmpgtu-sci-b-fail.s     |   7 +
 .../gas/riscv/cv-simd-cmpgtu-sci-b-pass.d     |  18 +
 .../gas/riscv/cv-simd-cmpgtu-sci-b-pass.s     |  11 +
 .../gas/riscv/cv-simd-cmpgtu-sci-h-fail.d     |   3 +
 .../gas/riscv/cv-simd-cmpgtu-sci-h-fail.l     |   5 +
 .../gas/riscv/cv-simd-cmpgtu-sci-h-fail.s     |   7 +
 .../gas/riscv/cv-simd-cmpgtu-sci-h-pass.d     |  18 +
 .../gas/riscv/cv-simd-cmpgtu-sci-h-pass.s     |  11 +
 .../gas/riscv/cv-simd-cmple-b-fail.d          |   3 +
 .../gas/riscv/cv-simd-cmple-b-fail.l          |   3 +
 .../gas/riscv/cv-simd-cmple-b-fail.s          |   4 +
 .../gas/riscv/cv-simd-cmple-b-pass.d          |  16 +
 .../gas/riscv/cv-simd-cmple-b-pass.s          |   8 +
 .../gas/riscv/cv-simd-cmple-h-fail.d          |   3 +
 .../gas/riscv/cv-simd-cmple-h-fail.l          |   3 +
 .../gas/riscv/cv-simd-cmple-h-fail.s          |   4 +
 .../gas/riscv/cv-simd-cmple-h-pass.d          |  16 +
 .../gas/riscv/cv-simd-cmple-h-pass.s          |   8 +
 .../gas/riscv/cv-simd-cmple-sc-b-fail.d       |   3 +
 .../gas/riscv/cv-simd-cmple-sc-b-fail.l       |   3 +
 .../gas/riscv/cv-simd-cmple-sc-b-fail.s       |   4 +
 .../gas/riscv/cv-simd-cmple-sc-b-pass.d       |  16 +
 .../gas/riscv/cv-simd-cmple-sc-b-pass.s       |   8 +
 .../gas/riscv/cv-simd-cmple-sc-h-fail.d       |   3 +
 .../gas/riscv/cv-simd-cmple-sc-h-fail.l       |   3 +
 .../gas/riscv/cv-simd-cmple-sc-h-fail.s       |   4 +
 .../gas/riscv/cv-simd-cmple-sc-h-pass.d       |  16 +
 .../gas/riscv/cv-simd-cmple-sc-h-pass.s       |   8 +
 .../gas/riscv/cv-simd-cmple-sci-b-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmple-sci-b-fail.l      |   5 +
 .../gas/riscv/cv-simd-cmple-sci-b-fail.s      |   7 +
 .../gas/riscv/cv-simd-cmple-sci-b-pass.d      |  19 +
 .../gas/riscv/cv-simd-cmple-sci-b-pass.s      |  12 +
 .../gas/riscv/cv-simd-cmple-sci-h-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmple-sci-h-fail.l      |   5 +
 .../gas/riscv/cv-simd-cmple-sci-h-fail.s      |   7 +
 .../gas/riscv/cv-simd-cmple-sci-h-pass.d      |  19 +
 .../gas/riscv/cv-simd-cmple-sci-h-pass.s      |  12 +
 .../gas/riscv/cv-simd-cmpleu-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-cmpleu-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-cmpleu-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-cmpleu-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-cmpleu-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-cmpleu-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-cmpleu-h-fail.l         |   3 +
 .../gas/riscv/cv-simd-cmpleu-h-fail.s         |   4 +
 .../gas/riscv/cv-simd-cmpleu-h-pass.d         |  16 +
 .../gas/riscv/cv-simd-cmpleu-h-pass.s         |   8 +
 .../gas/riscv/cv-simd-cmpleu-sc-b-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmpleu-sc-b-fail.l      |   3 +
 .../gas/riscv/cv-simd-cmpleu-sc-b-fail.s      |   4 +
 .../gas/riscv/cv-simd-cmpleu-sc-b-pass.d      |  16 +
 .../gas/riscv/cv-simd-cmpleu-sc-b-pass.s      |   8 +
 .../gas/riscv/cv-simd-cmpleu-sc-h-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmpleu-sc-h-fail.l      |   3 +
 .../gas/riscv/cv-simd-cmpleu-sc-h-fail.s      |   4 +
 .../gas/riscv/cv-simd-cmpleu-sc-h-pass.d      |  16 +
 .../gas/riscv/cv-simd-cmpleu-sc-h-pass.s      |   8 +
 .../gas/riscv/cv-simd-cmpleu-sci-b-fail.d     |   3 +
 .../gas/riscv/cv-simd-cmpleu-sci-b-fail.l     |   5 +
 .../gas/riscv/cv-simd-cmpleu-sci-b-fail.s     |   7 +
 .../gas/riscv/cv-simd-cmpleu-sci-b-pass.d     |  18 +
 .../gas/riscv/cv-simd-cmpleu-sci-b-pass.s     |  11 +
 .../gas/riscv/cv-simd-cmpleu-sci-h-fail.d     |   3 +
 .../gas/riscv/cv-simd-cmpleu-sci-h-fail.l     |   5 +
 .../gas/riscv/cv-simd-cmpleu-sci-h-fail.s     |   7 +
 .../gas/riscv/cv-simd-cmpleu-sci-h-pass.d     |  18 +
 .../gas/riscv/cv-simd-cmpleu-sci-h-pass.s     |  11 +
 .../gas/riscv/cv-simd-cmplt-b-fail.d          |   3 +
 .../gas/riscv/cv-simd-cmplt-b-fail.l          |   3 +
 .../gas/riscv/cv-simd-cmplt-b-fail.s          |   4 +
 .../gas/riscv/cv-simd-cmplt-b-pass.d          |  16 +
 .../gas/riscv/cv-simd-cmplt-b-pass.s          |   8 +
 .../gas/riscv/cv-simd-cmplt-h-fail.d          |   3 +
 .../gas/riscv/cv-simd-cmplt-h-fail.l          |   3 +
 .../gas/riscv/cv-simd-cmplt-h-fail.s          |   4 +
 .../gas/riscv/cv-simd-cmplt-h-pass.d          |  16 +
 .../gas/riscv/cv-simd-cmplt-h-pass.s          |   8 +
 .../gas/riscv/cv-simd-cmplt-sc-b-fail.d       |   3 +
 .../gas/riscv/cv-simd-cmplt-sc-b-fail.l       |   3 +
 .../gas/riscv/cv-simd-cmplt-sc-b-fail.s       |   4 +
 .../gas/riscv/cv-simd-cmplt-sc-b-pass.d       |  16 +
 .../gas/riscv/cv-simd-cmplt-sc-b-pass.s       |   8 +
 .../gas/riscv/cv-simd-cmplt-sc-h-fail.d       |   3 +
 .../gas/riscv/cv-simd-cmplt-sc-h-fail.l       |   3 +
 .../gas/riscv/cv-simd-cmplt-sc-h-fail.s       |   4 +
 .../gas/riscv/cv-simd-cmplt-sc-h-pass.d       |  16 +
 .../gas/riscv/cv-simd-cmplt-sc-h-pass.s       |   8 +
 .../gas/riscv/cv-simd-cmplt-sci-b-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmplt-sci-b-fail.l      |   5 +
 .../gas/riscv/cv-simd-cmplt-sci-b-fail.s      |   7 +
 .../gas/riscv/cv-simd-cmplt-sci-b-pass.d      |  19 +
 .../gas/riscv/cv-simd-cmplt-sci-b-pass.s      |  12 +
 .../gas/riscv/cv-simd-cmplt-sci-h-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmplt-sci-h-fail.l      |   5 +
 .../gas/riscv/cv-simd-cmplt-sci-h-fail.s      |   7 +
 .../gas/riscv/cv-simd-cmplt-sci-h-pass.d      |  19 +
 .../gas/riscv/cv-simd-cmplt-sci-h-pass.s      |  12 +
 .../gas/riscv/cv-simd-cmpltu-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-cmpltu-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-cmpltu-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-cmpltu-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-cmpltu-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-cmpltu-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-cmpltu-h-fail.l         |   3 +
 .../gas/riscv/cv-simd-cmpltu-h-fail.s         |   4 +
 .../gas/riscv/cv-simd-cmpltu-h-pass.d         |  16 +
 .../gas/riscv/cv-simd-cmpltu-h-pass.s         |   8 +
 .../gas/riscv/cv-simd-cmpltu-sc-b-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmpltu-sc-b-fail.l      |   3 +
 .../gas/riscv/cv-simd-cmpltu-sc-b-fail.s      |   4 +
 .../gas/riscv/cv-simd-cmpltu-sc-b-pass.d      |  16 +
 .../gas/riscv/cv-simd-cmpltu-sc-b-pass.s      |   8 +
 .../gas/riscv/cv-simd-cmpltu-sc-h-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmpltu-sc-h-fail.l      |   3 +
 .../gas/riscv/cv-simd-cmpltu-sc-h-fail.s      |   4 +
 .../gas/riscv/cv-simd-cmpltu-sc-h-pass.d      |  16 +
 .../gas/riscv/cv-simd-cmpltu-sc-h-pass.s      |   8 +
 .../gas/riscv/cv-simd-cmpltu-sci-b-fail.d     |   3 +
 .../gas/riscv/cv-simd-cmpltu-sci-b-fail.l     |   5 +
 .../gas/riscv/cv-simd-cmpltu-sci-b-fail.s     |   7 +
 .../gas/riscv/cv-simd-cmpltu-sci-b-pass.d     |  18 +
 .../gas/riscv/cv-simd-cmpltu-sci-b-pass.s     |  11 +
 .../gas/riscv/cv-simd-cmpltu-sci-h-fail.d     |   3 +
 .../gas/riscv/cv-simd-cmpltu-sci-h-fail.l     |   5 +
 .../gas/riscv/cv-simd-cmpltu-sci-h-fail.s     |   7 +
 .../gas/riscv/cv-simd-cmpltu-sci-h-pass.d     |  18 +
 .../gas/riscv/cv-simd-cmpltu-sci-h-pass.s     |  11 +
 .../gas/riscv/cv-simd-cmpne-b-fail.d          |   3 +
 .../gas/riscv/cv-simd-cmpne-b-fail.l          |   3 +
 .../gas/riscv/cv-simd-cmpne-b-fail.s          |   4 +
 .../gas/riscv/cv-simd-cmpne-b-pass.d          |  16 +
 .../gas/riscv/cv-simd-cmpne-b-pass.s          |   8 +
 .../gas/riscv/cv-simd-cmpne-h-fail.d          |   3 +
 .../gas/riscv/cv-simd-cmpne-h-fail.l          |   3 +
 .../gas/riscv/cv-simd-cmpne-h-fail.s          |   4 +
 .../gas/riscv/cv-simd-cmpne-h-pass.d          |  16 +
 .../gas/riscv/cv-simd-cmpne-h-pass.s          |   8 +
 .../gas/riscv/cv-simd-cmpne-sc-b-fail.d       |   3 +
 .../gas/riscv/cv-simd-cmpne-sc-b-fail.l       |   3 +
 .../gas/riscv/cv-simd-cmpne-sc-b-fail.s       |   4 +
 .../gas/riscv/cv-simd-cmpne-sc-b-pass.d       |  16 +
 .../gas/riscv/cv-simd-cmpne-sc-b-pass.s       |   8 +
 .../gas/riscv/cv-simd-cmpne-sc-h-fail.d       |   3 +
 .../gas/riscv/cv-simd-cmpne-sc-h-fail.l       |   3 +
 .../gas/riscv/cv-simd-cmpne-sc-h-fail.s       |   4 +
 .../gas/riscv/cv-simd-cmpne-sc-h-pass.d       |  16 +
 .../gas/riscv/cv-simd-cmpne-sc-h-pass.s       |   8 +
 .../gas/riscv/cv-simd-cmpne-sci-b-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmpne-sci-b-fail.l      |   5 +
 .../gas/riscv/cv-simd-cmpne-sci-b-fail.s      |   7 +
 .../gas/riscv/cv-simd-cmpne-sci-b-pass.d      |  19 +
 .../gas/riscv/cv-simd-cmpne-sci-b-pass.s      |  12 +
 .../gas/riscv/cv-simd-cmpne-sci-h-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmpne-sci-h-fail.l      |   5 +
 .../gas/riscv/cv-simd-cmpne-sci-h-fail.s      |   7 +
 .../gas/riscv/cv-simd-cmpne-sci-h-pass.d      |  19 +
 .../gas/riscv/cv-simd-cmpne-sci-h-pass.s      |  12 +
 .../gas/riscv/cv-simd-cplxconj-fail.d         |   3 +
 .../gas/riscv/cv-simd-cplxconj-fail.l         |   3 +
 .../gas/riscv/cv-simd-cplxconj-fail.s         |   4 +
 .../gas/riscv/cv-simd-cplxconj-pass.d         |  16 +
 .../gas/riscv/cv-simd-cplxconj-pass.s         |   8 +
 .../gas/riscv/cv-simd-cplxmul-i-div2-fail.d   |   3 +
 .../gas/riscv/cv-simd-cplxmul-i-div2-fail.l   |   3 +
 .../gas/riscv/cv-simd-cplxmul-i-div2-fail.s   |   4 +
 .../gas/riscv/cv-simd-cplxmul-i-div2-pass.d   |  16 +
 .../gas/riscv/cv-simd-cplxmul-i-div2-pass.s   |   8 +
 .../gas/riscv/cv-simd-cplxmul-i-div4-fail.d   |   3 +
 .../gas/riscv/cv-simd-cplxmul-i-div4-fail.l   |   3 +
 .../gas/riscv/cv-simd-cplxmul-i-div4-fail.s   |   4 +
 .../gas/riscv/cv-simd-cplxmul-i-div4-pass.d   |  16 +
 .../gas/riscv/cv-simd-cplxmul-i-div4-pass.s   |   8 +
 .../gas/riscv/cv-simd-cplxmul-i-div8-fail.d   |   3 +
 .../gas/riscv/cv-simd-cplxmul-i-div8-fail.l   |   3 +
 .../gas/riscv/cv-simd-cplxmul-i-div8-fail.s   |   4 +
 .../gas/riscv/cv-simd-cplxmul-i-div8-pass.d   |  16 +
 .../gas/riscv/cv-simd-cplxmul-i-div8-pass.s   |   8 +
 .../gas/riscv/cv-simd-cplxmul-i-fail.d        |   3 +
 .../gas/riscv/cv-simd-cplxmul-i-fail.l        |   3 +
 .../gas/riscv/cv-simd-cplxmul-i-fail.s        |   4 +
 .../gas/riscv/cv-simd-cplxmul-i-pass.d        |  16 +
 .../gas/riscv/cv-simd-cplxmul-i-pass.s        |   8 +
 .../gas/riscv/cv-simd-cplxmul-r-div2-fail.d   |   3 +
 .../gas/riscv/cv-simd-cplxmul-r-div2-fail.l   |   3 +
 .../gas/riscv/cv-simd-cplxmul-r-div2-fail.s   |   4 +
 .../gas/riscv/cv-simd-cplxmul-r-div2-pass.d   |  16 +
 .../gas/riscv/cv-simd-cplxmul-r-div2-pass.s   |   8 +
 .../gas/riscv/cv-simd-cplxmul-r-div4-fail.d   |   3 +
 .../gas/riscv/cv-simd-cplxmul-r-div4-fail.l   |   3 +
 .../gas/riscv/cv-simd-cplxmul-r-div4-fail.s   |   4 +
 .../gas/riscv/cv-simd-cplxmul-r-div4-pass.d   |  16 +
 .../gas/riscv/cv-simd-cplxmul-r-div4-pass.s   |   8 +
 .../gas/riscv/cv-simd-cplxmul-r-div8-fail.d   |   3 +
 .../gas/riscv/cv-simd-cplxmul-r-div8-fail.l   |   3 +
 .../gas/riscv/cv-simd-cplxmul-r-div8-fail.s   |   4 +
 .../gas/riscv/cv-simd-cplxmul-r-div8-pass.d   |  16 +
 .../gas/riscv/cv-simd-cplxmul-r-div8-pass.s   |   8 +
 .../gas/riscv/cv-simd-cplxmul-r-fail.d        |   3 +
 .../gas/riscv/cv-simd-cplxmul-r-fail.l        |   3 +
 .../gas/riscv/cv-simd-cplxmul-r-fail.s        |   4 +
 .../gas/riscv/cv-simd-cplxmul-r-pass.d        |  16 +
 .../gas/riscv/cv-simd-cplxmul-r-pass.s        |   8 +
 .../gas/riscv/cv-simd-dotsp-b-fail.d          |   3 +
 .../gas/riscv/cv-simd-dotsp-b-fail.l          |   3 +
 .../gas/riscv/cv-simd-dotsp-b-fail.s          |   4 +
 .../gas/riscv/cv-simd-dotsp-b-pass.d          |  16 +
 .../gas/riscv/cv-simd-dotsp-b-pass.s          |   8 +
 .../gas/riscv/cv-simd-dotsp-h-fail.d          |   3 +
 .../gas/riscv/cv-simd-dotsp-h-fail.l          |   3 +
 .../gas/riscv/cv-simd-dotsp-h-fail.s          |   4 +
 .../gas/riscv/cv-simd-dotsp-h-pass.d          |  16 +
 .../gas/riscv/cv-simd-dotsp-h-pass.s          |   8 +
 .../gas/riscv/cv-simd-dotsp-sc-b-fail.d       |   3 +
 .../gas/riscv/cv-simd-dotsp-sc-b-fail.l       |   3 +
 .../gas/riscv/cv-simd-dotsp-sc-b-fail.s       |   4 +
 .../gas/riscv/cv-simd-dotsp-sc-b-pass.d       |  16 +
 .../gas/riscv/cv-simd-dotsp-sc-b-pass.s       |   8 +
 .../gas/riscv/cv-simd-dotsp-sc-h-fail.d       |   3 +
 .../gas/riscv/cv-simd-dotsp-sc-h-fail.l       |   3 +
 .../gas/riscv/cv-simd-dotsp-sc-h-fail.s       |   4 +
 .../gas/riscv/cv-simd-dotsp-sc-h-pass.d       |  16 +
 .../gas/riscv/cv-simd-dotsp-sc-h-pass.s       |   8 +
 .../gas/riscv/cv-simd-dotsp-sci-b-fail.d      |   3 +
 .../gas/riscv/cv-simd-dotsp-sci-b-fail.l      |   5 +
 .../gas/riscv/cv-simd-dotsp-sci-b-fail.s      |   7 +
 .../gas/riscv/cv-simd-dotsp-sci-b-pass.d      |  19 +
 .../gas/riscv/cv-simd-dotsp-sci-b-pass.s      |  12 +
 .../gas/riscv/cv-simd-dotsp-sci-h-fail.d      |   3 +
 .../gas/riscv/cv-simd-dotsp-sci-h-fail.l      |   5 +
 .../gas/riscv/cv-simd-dotsp-sci-h-fail.s      |   7 +
 .../gas/riscv/cv-simd-dotsp-sci-h-pass.d      |  19 +
 .../gas/riscv/cv-simd-dotsp-sci-h-pass.s      |  12 +
 .../gas/riscv/cv-simd-dotup-b-fail.d          |   3 +
 .../gas/riscv/cv-simd-dotup-b-fail.l          |   3 +
 .../gas/riscv/cv-simd-dotup-b-fail.s          |   4 +
 .../gas/riscv/cv-simd-dotup-b-pass.d          |  16 +
 .../gas/riscv/cv-simd-dotup-b-pass.s          |   8 +
 .../gas/riscv/cv-simd-dotup-h-fail.d          |   3 +
 .../gas/riscv/cv-simd-dotup-h-fail.l          |   3 +
 .../gas/riscv/cv-simd-dotup-h-fail.s          |   4 +
 .../gas/riscv/cv-simd-dotup-h-pass.d          |  16 +
 .../gas/riscv/cv-simd-dotup-h-pass.s          |   8 +
 .../gas/riscv/cv-simd-dotup-sc-b-fail.d       |   3 +
 .../gas/riscv/cv-simd-dotup-sc-b-fail.l       |   3 +
 .../gas/riscv/cv-simd-dotup-sc-b-fail.s       |   4 +
 .../gas/riscv/cv-simd-dotup-sc-b-pass.d       |  16 +
 .../gas/riscv/cv-simd-dotup-sc-b-pass.s       |   8 +
 .../gas/riscv/cv-simd-dotup-sc-h-fail.d       |   3 +
 .../gas/riscv/cv-simd-dotup-sc-h-fail.l       |   3 +
 .../gas/riscv/cv-simd-dotup-sc-h-fail.s       |   4 +
 .../gas/riscv/cv-simd-dotup-sc-h-pass.d       |  16 +
 .../gas/riscv/cv-simd-dotup-sc-h-pass.s       |   8 +
 .../gas/riscv/cv-simd-dotup-sci-b-fail.d      |   3 +
 .../gas/riscv/cv-simd-dotup-sci-b-fail.l      |   5 +
 .../gas/riscv/cv-simd-dotup-sci-b-fail.s      |   7 +
 .../gas/riscv/cv-simd-dotup-sci-b-pass.d      |  18 +
 .../gas/riscv/cv-simd-dotup-sci-b-pass.s      |  11 +
 .../gas/riscv/cv-simd-dotup-sci-h-fail.d      |   3 +
 .../gas/riscv/cv-simd-dotup-sci-h-fail.l      |   5 +
 .../gas/riscv/cv-simd-dotup-sci-h-fail.s      |   7 +
 .../gas/riscv/cv-simd-dotup-sci-h-pass.d      |  18 +
 .../gas/riscv/cv-simd-dotup-sci-h-pass.s      |  11 +
 .../gas/riscv/cv-simd-dotusp-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-dotusp-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-dotusp-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-dotusp-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-dotusp-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-dotusp-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-dotusp-h-fail.l         |   3 +
 .../gas/riscv/cv-simd-dotusp-h-fail.s         |   4 +
 .../gas/riscv/cv-simd-dotusp-h-pass.d         |  16 +
 .../gas/riscv/cv-simd-dotusp-h-pass.s         |   8 +
 .../gas/riscv/cv-simd-dotusp-sc-b-fail.d      |   3 +
 .../gas/riscv/cv-simd-dotusp-sc-b-fail.l      |   3 +
 .../gas/riscv/cv-simd-dotusp-sc-b-fail.s      |   4 +
 .../gas/riscv/cv-simd-dotusp-sc-b-pass.d      |  16 +
 .../gas/riscv/cv-simd-dotusp-sc-b-pass.s      |   8 +
 .../gas/riscv/cv-simd-dotusp-sc-h-fail.d      |   3 +
 .../gas/riscv/cv-simd-dotusp-sc-h-fail.l      |   3 +
 .../gas/riscv/cv-simd-dotusp-sc-h-fail.s      |   4 +
 .../gas/riscv/cv-simd-dotusp-sc-h-pass.d      |  16 +
 .../gas/riscv/cv-simd-dotusp-sc-h-pass.s      |   8 +
 .../gas/riscv/cv-simd-dotusp-sci-b-fail.d     |   3 +
 .../gas/riscv/cv-simd-dotusp-sci-b-fail.l     |   5 +
 .../gas/riscv/cv-simd-dotusp-sci-b-fail.s     |   7 +
 .../gas/riscv/cv-simd-dotusp-sci-b-pass.d     |  19 +
 .../gas/riscv/cv-simd-dotusp-sci-b-pass.s     |  12 +
 .../gas/riscv/cv-simd-dotusp-sci-h-fail.d     |   3 +
 .../gas/riscv/cv-simd-dotusp-sci-h-fail.l     |   5 +
 .../gas/riscv/cv-simd-dotusp-sci-h-fail.s     |   7 +
 .../gas/riscv/cv-simd-dotusp-sci-h-pass.d     |  19 +
 .../gas/riscv/cv-simd-dotusp-sci-h-pass.s     |  12 +
 .../gas/riscv/cv-simd-extract-b-fail.d        |   3 +
 .../gas/riscv/cv-simd-extract-b-fail.l        |   5 +
 .../gas/riscv/cv-simd-extract-b-fail.s        |   7 +
 .../gas/riscv/cv-simd-extract-b-pass.d        |  18 +
 .../gas/riscv/cv-simd-extract-b-pass.s        |  11 +
 .../gas/riscv/cv-simd-extract-h-fail.d        |   3 +
 .../gas/riscv/cv-simd-extract-h-fail.l        |   5 +
 .../gas/riscv/cv-simd-extract-h-fail.s        |   7 +
 .../gas/riscv/cv-simd-extract-h-pass.d        |  18 +
 .../gas/riscv/cv-simd-extract-h-pass.s        |  11 +
 .../gas/riscv/cv-simd-extractu-b-fail.d       |   3 +
 .../gas/riscv/cv-simd-extractu-b-fail.l       |   5 +
 .../gas/riscv/cv-simd-extractu-b-fail.s       |   7 +
 .../gas/riscv/cv-simd-extractu-b-pass.d       |  18 +
 .../gas/riscv/cv-simd-extractu-b-pass.s       |  11 +
 .../gas/riscv/cv-simd-extractu-h-fail.d       |   3 +
 .../gas/riscv/cv-simd-extractu-h-fail.l       |   5 +
 .../gas/riscv/cv-simd-extractu-h-fail.s       |   7 +
 .../gas/riscv/cv-simd-extractu-h-pass.d       |  18 +
 .../gas/riscv/cv-simd-extractu-h-pass.s       |  11 +
 .../gas/riscv/cv-simd-insert-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-insert-b-fail.l         |   5 +
 .../gas/riscv/cv-simd-insert-b-fail.s         |   7 +
 .../gas/riscv/cv-simd-insert-b-pass.d         |  18 +
 .../gas/riscv/cv-simd-insert-b-pass.s         |  11 +
 .../gas/riscv/cv-simd-insert-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-insert-h-fail.l         |   5 +
 .../gas/riscv/cv-simd-insert-h-fail.s         |   7 +
 .../gas/riscv/cv-simd-insert-h-pass.d         |  18 +
 .../gas/riscv/cv-simd-insert-h-pass.s         |  11 +
 gas/testsuite/gas/riscv/cv-simd-march-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-march-fail.l  | 221 +++++++++
 gas/testsuite/gas/riscv/cv-simd-march-fail.s  | 221 +++++++++
 .../gas/riscv/cv-simd-march-xcvsimd.d         | 230 +++++++++
 .../gas/riscv/cv-simd-march-xcvsimd.s         | 221 +++++++++
 gas/testsuite/gas/riscv/cv-simd-max-b-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-max-b-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-max-b-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-max-b-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-max-b-pass.s  |   8 +
 gas/testsuite/gas/riscv/cv-simd-max-h-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-max-h-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-max-h-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-max-h-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-max-h-pass.s  |   8 +
 .../gas/riscv/cv-simd-max-sc-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-max-sc-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-max-sc-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-max-sc-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-max-sc-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-max-sc-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-max-sc-h-fail.l         |   3 +
 .../gas/riscv/cv-simd-max-sc-h-fail.s         |   4 +
 .../gas/riscv/cv-simd-max-sc-h-pass.d         |  16 +
 .../gas/riscv/cv-simd-max-sc-h-pass.s         |   8 +
 .../gas/riscv/cv-simd-max-sci-b-fail.d        |   3 +
 .../gas/riscv/cv-simd-max-sci-b-fail.l        |   5 +
 .../gas/riscv/cv-simd-max-sci-b-fail.s        |   7 +
 .../gas/riscv/cv-simd-max-sci-b-pass.d        |  19 +
 .../gas/riscv/cv-simd-max-sci-b-pass.s        |  12 +
 .../gas/riscv/cv-simd-max-sci-h-fail.d        |   3 +
 .../gas/riscv/cv-simd-max-sci-h-fail.l        |   5 +
 .../gas/riscv/cv-simd-max-sci-h-fail.s        |   7 +
 .../gas/riscv/cv-simd-max-sci-h-pass.d        |  19 +
 .../gas/riscv/cv-simd-max-sci-h-pass.s        |  12 +
 gas/testsuite/gas/riscv/cv-simd-maxu-b-fail.d |   3 +
 gas/testsuite/gas/riscv/cv-simd-maxu-b-fail.l |   3 +
 gas/testsuite/gas/riscv/cv-simd-maxu-b-fail.s |   4 +
 gas/testsuite/gas/riscv/cv-simd-maxu-b-pass.d |  16 +
 gas/testsuite/gas/riscv/cv-simd-maxu-b-pass.s |   8 +
 gas/testsuite/gas/riscv/cv-simd-maxu-h-fail.d |   3 +
 gas/testsuite/gas/riscv/cv-simd-maxu-h-fail.l |   3 +
 gas/testsuite/gas/riscv/cv-simd-maxu-h-fail.s |   4 +
 gas/testsuite/gas/riscv/cv-simd-maxu-h-pass.d |  16 +
 gas/testsuite/gas/riscv/cv-simd-maxu-h-pass.s |   8 +
 .../gas/riscv/cv-simd-maxu-sc-b-fail.d        |   3 +
 .../gas/riscv/cv-simd-maxu-sc-b-fail.l        |   3 +
 .../gas/riscv/cv-simd-maxu-sc-b-fail.s        |   4 +
 .../gas/riscv/cv-simd-maxu-sc-b-pass.d        |  16 +
 .../gas/riscv/cv-simd-maxu-sc-b-pass.s        |   8 +
 .../gas/riscv/cv-simd-maxu-sc-h-fail.d        |   3 +
 .../gas/riscv/cv-simd-maxu-sc-h-fail.l        |   3 +
 .../gas/riscv/cv-simd-maxu-sc-h-fail.s        |   4 +
 .../gas/riscv/cv-simd-maxu-sc-h-pass.d        |  16 +
 .../gas/riscv/cv-simd-maxu-sc-h-pass.s        |   8 +
 .../gas/riscv/cv-simd-maxu-sci-b-fail.d       |   3 +
 .../gas/riscv/cv-simd-maxu-sci-b-fail.l       |   5 +
 .../gas/riscv/cv-simd-maxu-sci-b-fail.s       |   7 +
 .../gas/riscv/cv-simd-maxu-sci-b-pass.d       |  18 +
 .../gas/riscv/cv-simd-maxu-sci-b-pass.s       |  11 +
 .../gas/riscv/cv-simd-maxu-sci-h-fail.d       |   3 +
 .../gas/riscv/cv-simd-maxu-sci-h-fail.l       |   5 +
 .../gas/riscv/cv-simd-maxu-sci-h-fail.s       |   7 +
 .../gas/riscv/cv-simd-maxu-sci-h-pass.d       |  18 +
 .../gas/riscv/cv-simd-maxu-sci-h-pass.s       |  11 +
 gas/testsuite/gas/riscv/cv-simd-min-b-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-min-b-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-min-b-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-min-b-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-min-b-pass.s  |   8 +
 gas/testsuite/gas/riscv/cv-simd-min-h-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-min-h-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-min-h-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-min-h-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-min-h-pass.s  |   8 +
 .../gas/riscv/cv-simd-min-sc-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-min-sc-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-min-sc-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-min-sc-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-min-sc-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-min-sc-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-min-sc-h-fail.l         |   3 +
 .../gas/riscv/cv-simd-min-sc-h-fail.s         |   4 +
 .../gas/riscv/cv-simd-min-sc-h-pass.d         |  16 +
 .../gas/riscv/cv-simd-min-sc-h-pass.s         |   8 +
 .../gas/riscv/cv-simd-min-sci-b-fail.d        |   3 +
 .../gas/riscv/cv-simd-min-sci-b-fail.l        |   5 +
 .../gas/riscv/cv-simd-min-sci-b-fail.s        |   7 +
 .../gas/riscv/cv-simd-min-sci-b-pass.d        |  19 +
 .../gas/riscv/cv-simd-min-sci-b-pass.s        |  12 +
 .../gas/riscv/cv-simd-min-sci-h-fail.d        |   3 +
 .../gas/riscv/cv-simd-min-sci-h-fail.l        |   5 +
 .../gas/riscv/cv-simd-min-sci-h-fail.s        |   7 +
 .../gas/riscv/cv-simd-min-sci-h-pass.d        |  19 +
 .../gas/riscv/cv-simd-min-sci-h-pass.s        |  12 +
 gas/testsuite/gas/riscv/cv-simd-minu-b-fail.d |   3 +
 gas/testsuite/gas/riscv/cv-simd-minu-b-fail.l |   3 +
 gas/testsuite/gas/riscv/cv-simd-minu-b-fail.s |   4 +
 gas/testsuite/gas/riscv/cv-simd-minu-b-pass.d |  16 +
 gas/testsuite/gas/riscv/cv-simd-minu-b-pass.s |   8 +
 gas/testsuite/gas/riscv/cv-simd-minu-h-fail.d |   3 +
 gas/testsuite/gas/riscv/cv-simd-minu-h-fail.l |   3 +
 gas/testsuite/gas/riscv/cv-simd-minu-h-fail.s |   4 +
 gas/testsuite/gas/riscv/cv-simd-minu-h-pass.d |  16 +
 gas/testsuite/gas/riscv/cv-simd-minu-h-pass.s |   8 +
 .../gas/riscv/cv-simd-minu-sc-b-fail.d        |   3 +
 .../gas/riscv/cv-simd-minu-sc-b-fail.l        |   3 +
 .../gas/riscv/cv-simd-minu-sc-b-fail.s        |   4 +
 .../gas/riscv/cv-simd-minu-sc-b-pass.d        |  16 +
 .../gas/riscv/cv-simd-minu-sc-b-pass.s        |   8 +
 .../gas/riscv/cv-simd-minu-sc-h-fail.d        |   3 +
 .../gas/riscv/cv-simd-minu-sc-h-fail.l        |   3 +
 .../gas/riscv/cv-simd-minu-sc-h-fail.s        |   4 +
 .../gas/riscv/cv-simd-minu-sc-h-pass.d        |  16 +
 .../gas/riscv/cv-simd-minu-sc-h-pass.s        |   8 +
 .../gas/riscv/cv-simd-minu-sci-b-fail.d       |   3 +
 .../gas/riscv/cv-simd-minu-sci-b-fail.l       |   5 +
 .../gas/riscv/cv-simd-minu-sci-b-fail.s       |   7 +
 .../gas/riscv/cv-simd-minu-sci-b-pass.d       |  18 +
 .../gas/riscv/cv-simd-minu-sci-b-pass.s       |  11 +
 .../gas/riscv/cv-simd-minu-sci-h-fail.d       |   3 +
 .../gas/riscv/cv-simd-minu-sci-h-fail.l       |   5 +
 .../gas/riscv/cv-simd-minu-sci-h-fail.s       |   7 +
 .../gas/riscv/cv-simd-minu-sci-h-pass.d       |  18 +
 .../gas/riscv/cv-simd-minu-sci-h-pass.s       |  11 +
 gas/testsuite/gas/riscv/cv-simd-or-b-fail.d   |   3 +
 gas/testsuite/gas/riscv/cv-simd-or-b-fail.l   |   3 +
 gas/testsuite/gas/riscv/cv-simd-or-b-fail.s   |   4 +
 gas/testsuite/gas/riscv/cv-simd-or-b-pass.d   |  16 +
 gas/testsuite/gas/riscv/cv-simd-or-b-pass.s   |   8 +
 gas/testsuite/gas/riscv/cv-simd-or-h-fail.d   |   3 +
 gas/testsuite/gas/riscv/cv-simd-or-h-fail.l   |   3 +
 gas/testsuite/gas/riscv/cv-simd-or-h-fail.s   |   4 +
 gas/testsuite/gas/riscv/cv-simd-or-h-pass.d   |  16 +
 gas/testsuite/gas/riscv/cv-simd-or-h-pass.s   |   8 +
 .../gas/riscv/cv-simd-or-sc-b-fail.d          |   3 +
 .../gas/riscv/cv-simd-or-sc-b-fail.l          |   3 +
 .../gas/riscv/cv-simd-or-sc-b-fail.s          |   4 +
 .../gas/riscv/cv-simd-or-sc-b-pass.d          |  16 +
 .../gas/riscv/cv-simd-or-sc-b-pass.s          |   8 +
 .../gas/riscv/cv-simd-or-sc-h-fail.d          |   3 +
 .../gas/riscv/cv-simd-or-sc-h-fail.l          |   3 +
 .../gas/riscv/cv-simd-or-sc-h-fail.s          |   4 +
 .../gas/riscv/cv-simd-or-sc-h-pass.d          |  16 +
 .../gas/riscv/cv-simd-or-sc-h-pass.s          |   8 +
 .../gas/riscv/cv-simd-or-sci-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-or-sci-b-fail.l         |   5 +
 .../gas/riscv/cv-simd-or-sci-b-fail.s         |   7 +
 .../gas/riscv/cv-simd-or-sci-b-pass.d         |  19 +
 .../gas/riscv/cv-simd-or-sci-b-pass.s         |  12 +
 .../gas/riscv/cv-simd-or-sci-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-or-sci-h-fail.l         |   5 +
 .../gas/riscv/cv-simd-or-sci-h-fail.s         |   7 +
 .../gas/riscv/cv-simd-or-sci-h-pass.d         |  19 +
 .../gas/riscv/cv-simd-or-sci-h-pass.s         |  12 +
 gas/testsuite/gas/riscv/cv-simd-pack-fail.d   |   3 +
 gas/testsuite/gas/riscv/cv-simd-pack-fail.l   |   3 +
 gas/testsuite/gas/riscv/cv-simd-pack-fail.s   |   4 +
 gas/testsuite/gas/riscv/cv-simd-pack-h-fail.d |   3 +
 gas/testsuite/gas/riscv/cv-simd-pack-h-fail.l |   3 +
 gas/testsuite/gas/riscv/cv-simd-pack-h-fail.s |   4 +
 gas/testsuite/gas/riscv/cv-simd-pack-h-pass.d |  16 +
 gas/testsuite/gas/riscv/cv-simd-pack-h-pass.s |   8 +
 gas/testsuite/gas/riscv/cv-simd-pack-pass.d   |  16 +
 gas/testsuite/gas/riscv/cv-simd-pack-pass.s   |   8 +
 .../gas/riscv/cv-simd-packhi-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-packhi-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-packhi-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-packhi-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-packhi-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-packlo-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-packlo-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-packlo-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-packlo-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-packlo-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-sdotsp-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-sdotsp-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-sdotsp-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-sdotsp-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-sdotsp-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-sdotsp-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-sdotsp-h-fail.l         |   3 +
 .../gas/riscv/cv-simd-sdotsp-h-fail.s         |   4 +
 .../gas/riscv/cv-simd-sdotsp-h-pass.d         |  16 +
 .../gas/riscv/cv-simd-sdotsp-h-pass.s         |   8 +
 .../gas/riscv/cv-simd-sdotsp-sc-b-fail.d      |   3 +
 .../gas/riscv/cv-simd-sdotsp-sc-b-fail.l      |   3 +
 .../gas/riscv/cv-simd-sdotsp-sc-b-fail.s      |   4 +
 .../gas/riscv/cv-simd-sdotsp-sc-b-pass.d      |  16 +
 .../gas/riscv/cv-simd-sdotsp-sc-b-pass.s      |   8 +
 .../gas/riscv/cv-simd-sdotsp-sc-h-fail.d      |   3 +
 .../gas/riscv/cv-simd-sdotsp-sc-h-fail.l      |   3 +
 .../gas/riscv/cv-simd-sdotsp-sc-h-fail.s      |   4 +
 .../gas/riscv/cv-simd-sdotsp-sc-h-pass.d      |  16 +
 .../gas/riscv/cv-simd-sdotsp-sc-h-pass.s      |   8 +
 .../gas/riscv/cv-simd-sdotsp-sci-b-fail.d     |   3 +
 .../gas/riscv/cv-simd-sdotsp-sci-b-fail.l     |   5 +
 .../gas/riscv/cv-simd-sdotsp-sci-b-fail.s     |   7 +
 .../gas/riscv/cv-simd-sdotsp-sci-b-pass.d     |  19 +
 .../gas/riscv/cv-simd-sdotsp-sci-b-pass.s     |  12 +
 .../gas/riscv/cv-simd-sdotsp-sci-h-fail.d     |   3 +
 .../gas/riscv/cv-simd-sdotsp-sci-h-fail.l     |   5 +
 .../gas/riscv/cv-simd-sdotsp-sci-h-fail.s     |   7 +
 .../gas/riscv/cv-simd-sdotsp-sci-h-pass.d     |  19 +
 .../gas/riscv/cv-simd-sdotsp-sci-h-pass.s     |  12 +
 .../gas/riscv/cv-simd-sdotup-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-sdotup-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-sdotup-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-sdotup-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-sdotup-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-sdotup-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-sdotup-h-fail.l         |   3 +
 .../gas/riscv/cv-simd-sdotup-h-fail.s         |   4 +
 .../gas/riscv/cv-simd-sdotup-h-pass.d         |  16 +
 .../gas/riscv/cv-simd-sdotup-h-pass.s         |   8 +
 .../gas/riscv/cv-simd-sdotup-sc-b-fail.d      |   3 +
 .../gas/riscv/cv-simd-sdotup-sc-b-fail.l      |   3 +
 .../gas/riscv/cv-simd-sdotup-sc-b-fail.s      |   4 +
 .../gas/riscv/cv-simd-sdotup-sc-b-pass.d      |  16 +
 .../gas/riscv/cv-simd-sdotup-sc-b-pass.s      |   8 +
 .../gas/riscv/cv-simd-sdotup-sc-h-fail.d      |   3 +
 .../gas/riscv/cv-simd-sdotup-sc-h-fail.l      |   3 +
 .../gas/riscv/cv-simd-sdotup-sc-h-fail.s      |   4 +
 .../gas/riscv/cv-simd-sdotup-sc-h-pass.d      |  16 +
 .../gas/riscv/cv-simd-sdotup-sc-h-pass.s      |   8 +
 .../gas/riscv/cv-simd-sdotup-sci-b-fail.d     |   3 +
 .../gas/riscv/cv-simd-sdotup-sci-b-fail.l     |   5 +
 .../gas/riscv/cv-simd-sdotup-sci-b-fail.s     |   7 +
 .../gas/riscv/cv-simd-sdotup-sci-b-pass.d     |  18 +
 .../gas/riscv/cv-simd-sdotup-sci-b-pass.s     |  11 +
 .../gas/riscv/cv-simd-sdotup-sci-h-fail.d     |   3 +
 .../gas/riscv/cv-simd-sdotup-sci-h-fail.l     |   5 +
 .../gas/riscv/cv-simd-sdotup-sci-h-fail.s     |   7 +
 .../gas/riscv/cv-simd-sdotup-sci-h-pass.d     |  18 +
 .../gas/riscv/cv-simd-sdotup-sci-h-pass.s     |  11 +
 .../gas/riscv/cv-simd-sdotusp-b-fail.d        |   3 +
 .../gas/riscv/cv-simd-sdotusp-b-fail.l        |   3 +
 .../gas/riscv/cv-simd-sdotusp-b-fail.s        |   4 +
 .../gas/riscv/cv-simd-sdotusp-b-pass.d        |  16 +
 .../gas/riscv/cv-simd-sdotusp-b-pass.s        |   8 +
 .../gas/riscv/cv-simd-sdotusp-h-fail.d        |   3 +
 .../gas/riscv/cv-simd-sdotusp-h-fail.l        |   3 +
 .../gas/riscv/cv-simd-sdotusp-h-fail.s        |   4 +
 .../gas/riscv/cv-simd-sdotusp-h-pass.d        |  16 +
 .../gas/riscv/cv-simd-sdotusp-h-pass.s        |   8 +
 .../gas/riscv/cv-simd-sdotusp-sc-b-fail.d     |   3 +
 .../gas/riscv/cv-simd-sdotusp-sc-b-fail.l     |   3 +
 .../gas/riscv/cv-simd-sdotusp-sc-b-fail.s     |   4 +
 .../gas/riscv/cv-simd-sdotusp-sc-b-pass.d     |  16 +
 .../gas/riscv/cv-simd-sdotusp-sc-b-pass.s     |   8 +
 .../gas/riscv/cv-simd-sdotusp-sc-h-fail.d     |   3 +
 .../gas/riscv/cv-simd-sdotusp-sc-h-fail.l     |   3 +
 .../gas/riscv/cv-simd-sdotusp-sc-h-fail.s     |   4 +
 .../gas/riscv/cv-simd-sdotusp-sc-h-pass.d     |  16 +
 .../gas/riscv/cv-simd-sdotusp-sc-h-pass.s     |   8 +
 .../gas/riscv/cv-simd-sdotusp-sci-b-fail.d    |   3 +
 .../gas/riscv/cv-simd-sdotusp-sci-b-fail.l    |   5 +
 .../gas/riscv/cv-simd-sdotusp-sci-b-fail.s    |   7 +
 .../gas/riscv/cv-simd-sdotusp-sci-b-pass.d    |  19 +
 .../gas/riscv/cv-simd-sdotusp-sci-b-pass.s    |  12 +
 .../gas/riscv/cv-simd-sdotusp-sci-h-fail.d    |   3 +
 .../gas/riscv/cv-simd-sdotusp-sci-h-fail.l    |   5 +
 .../gas/riscv/cv-simd-sdotusp-sci-h-fail.s    |   7 +
 .../gas/riscv/cv-simd-sdotusp-sci-h-pass.d    |  19 +
 .../gas/riscv/cv-simd-sdotusp-sci-h-pass.s    |  12 +
 .../gas/riscv/cv-simd-shuffle-b-fail.d        |   3 +
 .../gas/riscv/cv-simd-shuffle-b-fail.l        |   3 +
 .../gas/riscv/cv-simd-shuffle-b-fail.s        |   4 +
 .../gas/riscv/cv-simd-shuffle-b-pass.d        |  16 +
 .../gas/riscv/cv-simd-shuffle-b-pass.s        |   8 +
 .../gas/riscv/cv-simd-shuffle-h-fail.d        |   3 +
 .../gas/riscv/cv-simd-shuffle-h-fail.l        |   3 +
 .../gas/riscv/cv-simd-shuffle-h-fail.s        |   4 +
 .../gas/riscv/cv-simd-shuffle-h-pass.d        |  16 +
 .../gas/riscv/cv-simd-shuffle-h-pass.s        |   8 +
 .../gas/riscv/cv-simd-shuffle-sci-h-fail.d    |   3 +
 .../gas/riscv/cv-simd-shuffle-sci-h-fail.l    |   5 +
 .../gas/riscv/cv-simd-shuffle-sci-h-fail.s    |   7 +
 .../gas/riscv/cv-simd-shuffle-sci-h-pass.d    |  18 +
 .../gas/riscv/cv-simd-shuffle-sci-h-pass.s    |  11 +
 .../gas/riscv/cv-simd-shuffle2-b-fail.d       |   3 +
 .../gas/riscv/cv-simd-shuffle2-b-fail.l       |   3 +
 .../gas/riscv/cv-simd-shuffle2-b-fail.s       |   4 +
 .../gas/riscv/cv-simd-shuffle2-b-pass.d       |  16 +
 .../gas/riscv/cv-simd-shuffle2-b-pass.s       |   8 +
 .../gas/riscv/cv-simd-shuffle2-h-fail.d       |   3 +
 .../gas/riscv/cv-simd-shuffle2-h-fail.l       |   3 +
 .../gas/riscv/cv-simd-shuffle2-h-fail.s       |   4 +
 .../gas/riscv/cv-simd-shuffle2-h-pass.d       |  16 +
 .../gas/riscv/cv-simd-shuffle2-h-pass.s       |   8 +
 .../gas/riscv/cv-simd-shufflei0-sci-b-fail.d  |   3 +
 .../gas/riscv/cv-simd-shufflei0-sci-b-fail.l  |   5 +
 .../gas/riscv/cv-simd-shufflei0-sci-b-fail.s  |   7 +
 .../gas/riscv/cv-simd-shufflei0-sci-b-pass.d  |  18 +
 .../gas/riscv/cv-simd-shufflei0-sci-b-pass.s  |  11 +
 .../gas/riscv/cv-simd-shufflei1-sci-b-fail.d  |   3 +
 .../gas/riscv/cv-simd-shufflei1-sci-b-fail.l  |   5 +
 .../gas/riscv/cv-simd-shufflei1-sci-b-fail.s  |   7 +
 .../gas/riscv/cv-simd-shufflei1-sci-b-pass.d  |  18 +
 .../gas/riscv/cv-simd-shufflei1-sci-b-pass.s  |  11 +
 .../gas/riscv/cv-simd-shufflei2-sci-b-fail.d  |   3 +
 .../gas/riscv/cv-simd-shufflei2-sci-b-fail.l  |   5 +
 .../gas/riscv/cv-simd-shufflei2-sci-b-fail.s  |   7 +
 .../gas/riscv/cv-simd-shufflei2-sci-b-pass.d  |  18 +
 .../gas/riscv/cv-simd-shufflei2-sci-b-pass.s  |  11 +
 .../gas/riscv/cv-simd-shufflei3-sci-b-fail.d  |   3 +
 .../gas/riscv/cv-simd-shufflei3-sci-b-fail.l  |   5 +
 .../gas/riscv/cv-simd-shufflei3-sci-b-fail.s  |   7 +
 .../gas/riscv/cv-simd-shufflei3-sci-b-pass.d  |  18 +
 .../gas/riscv/cv-simd-shufflei3-sci-b-pass.s  |  11 +
 gas/testsuite/gas/riscv/cv-simd-sll-b-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-sll-b-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-sll-b-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-sll-b-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-sll-b-pass.s  |   8 +
 gas/testsuite/gas/riscv/cv-simd-sll-h-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-sll-h-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-sll-h-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-sll-h-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-sll-h-pass.s  |   8 +
 .../gas/riscv/cv-simd-sll-sc-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-sll-sc-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-sll-sc-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-sll-sc-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-sll-sc-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-sll-sc-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-sll-sc-h-fail.l         |   3 +
 .../gas/riscv/cv-simd-sll-sc-h-fail.s         |   4 +
 .../gas/riscv/cv-simd-sll-sc-h-pass.d         |  16 +
 .../gas/riscv/cv-simd-sll-sc-h-pass.s         |   8 +
 .../gas/riscv/cv-simd-sll-sci-b-fail.d        |   3 +
 .../gas/riscv/cv-simd-sll-sci-b-fail.l        |   5 +
 .../gas/riscv/cv-simd-sll-sci-b-fail.s        |   7 +
 .../gas/riscv/cv-simd-sll-sci-b-pass.d        |  18 +
 .../gas/riscv/cv-simd-sll-sci-b-pass.s        |  11 +
 .../gas/riscv/cv-simd-sll-sci-h-fail.d        |   3 +
 .../gas/riscv/cv-simd-sll-sci-h-fail.l        |   5 +
 .../gas/riscv/cv-simd-sll-sci-h-fail.s        |   7 +
 .../gas/riscv/cv-simd-sll-sci-h-pass.d        |  18 +
 .../gas/riscv/cv-simd-sll-sci-h-pass.s        |  11 +
 gas/testsuite/gas/riscv/cv-simd-sra-b-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-sra-b-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-sra-b-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-sra-b-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-sra-b-pass.s  |   8 +
 gas/testsuite/gas/riscv/cv-simd-sra-h-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-sra-h-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-sra-h-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-sra-h-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-sra-h-pass.s  |   8 +
 .../gas/riscv/cv-simd-sra-sc-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-sra-sc-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-sra-sc-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-sra-sc-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-sra-sc-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-sra-sc-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-sra-sc-h-fail.l         |   3 +
 .../gas/riscv/cv-simd-sra-sc-h-fail.s         |   4 +
 .../gas/riscv/cv-simd-sra-sc-h-pass.d         |  16 +
 .../gas/riscv/cv-simd-sra-sc-h-pass.s         |   8 +
 .../gas/riscv/cv-simd-sra-sci-b-fail.d        |   3 +
 .../gas/riscv/cv-simd-sra-sci-b-fail.l        |   5 +
 .../gas/riscv/cv-simd-sra-sci-b-fail.s        |   7 +
 .../gas/riscv/cv-simd-sra-sci-b-pass.d        |  18 +
 .../gas/riscv/cv-simd-sra-sci-b-pass.s        |  11 +
 .../gas/riscv/cv-simd-sra-sci-h-fail.d        |   3 +
 .../gas/riscv/cv-simd-sra-sci-h-fail.l        |   5 +
 .../gas/riscv/cv-simd-sra-sci-h-fail.s        |   7 +
 .../gas/riscv/cv-simd-sra-sci-h-pass.d        |  18 +
 .../gas/riscv/cv-simd-sra-sci-h-pass.s        |  11 +
 gas/testsuite/gas/riscv/cv-simd-srl-b-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-srl-b-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-srl-b-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-srl-b-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-srl-b-pass.s  |   8 +
 gas/testsuite/gas/riscv/cv-simd-srl-h-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-srl-h-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-srl-h-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-srl-h-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-srl-h-pass.s  |   8 +
 .../gas/riscv/cv-simd-srl-sc-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-srl-sc-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-srl-sc-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-srl-sc-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-srl-sc-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-srl-sc-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-srl-sc-h-fail.l         |   3 +
 .../gas/riscv/cv-simd-srl-sc-h-fail.s         |   4 +
 .../gas/riscv/cv-simd-srl-sc-h-pass.d         |  16 +
 .../gas/riscv/cv-simd-srl-sc-h-pass.s         |   8 +
 .../gas/riscv/cv-simd-srl-sci-b-fail.d        |   3 +
 .../gas/riscv/cv-simd-srl-sci-b-fail.l        |   5 +
 .../gas/riscv/cv-simd-srl-sci-b-fail.s        |   7 +
 .../gas/riscv/cv-simd-srl-sci-b-pass.d        |  18 +
 .../gas/riscv/cv-simd-srl-sci-b-pass.s        |  11 +
 .../gas/riscv/cv-simd-srl-sci-h-fail.d        |   3 +
 .../gas/riscv/cv-simd-srl-sci-h-fail.l        |   5 +
 .../gas/riscv/cv-simd-srl-sci-h-fail.s        |   7 +
 .../gas/riscv/cv-simd-srl-sci-h-pass.d        |  18 +
 .../gas/riscv/cv-simd-srl-sci-h-pass.s        |  11 +
 gas/testsuite/gas/riscv/cv-simd-sub-b-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-sub-b-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-sub-b-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-sub-b-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-sub-b-pass.s  |   8 +
 .../gas/riscv/cv-simd-sub-div2-fail.d         |   3 +
 .../gas/riscv/cv-simd-sub-div2-fail.l         |   3 +
 .../gas/riscv/cv-simd-sub-div2-fail.s         |   4 +
 .../gas/riscv/cv-simd-sub-div2-pass.d         |  16 +
 .../gas/riscv/cv-simd-sub-div2-pass.s         |   8 +
 .../gas/riscv/cv-simd-sub-div4-fail.d         |   3 +
 .../gas/riscv/cv-simd-sub-div4-fail.l         |   3 +
 .../gas/riscv/cv-simd-sub-div4-fail.s         |   4 +
 .../gas/riscv/cv-simd-sub-div4-pass.d         |  16 +
 .../gas/riscv/cv-simd-sub-div4-pass.s         |   8 +
 .../gas/riscv/cv-simd-sub-div8-fail.d         |   3 +
 .../gas/riscv/cv-simd-sub-div8-fail.l         |   3 +
 .../gas/riscv/cv-simd-sub-div8-fail.s         |   4 +
 .../gas/riscv/cv-simd-sub-div8-pass.d         |  16 +
 .../gas/riscv/cv-simd-sub-div8-pass.s         |   8 +
 gas/testsuite/gas/riscv/cv-simd-sub-h-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-sub-h-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-sub-h-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-sub-h-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-sub-h-pass.s  |   8 +
 .../gas/riscv/cv-simd-sub-sc-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-sub-sc-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-sub-sc-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-sub-sc-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-sub-sc-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-sub-sc-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-sub-sc-h-fail.l         |   3 +
 .../gas/riscv/cv-simd-sub-sc-h-fail.s         |   4 +
 .../gas/riscv/cv-simd-sub-sc-h-pass.d         |  16 +
 .../gas/riscv/cv-simd-sub-sc-h-pass.s         |   8 +
 .../gas/riscv/cv-simd-sub-sci-b-fail.d        |   3 +
 .../gas/riscv/cv-simd-sub-sci-b-fail.l        |   5 +
 .../gas/riscv/cv-simd-sub-sci-b-fail.s        |   7 +
 .../gas/riscv/cv-simd-sub-sci-b-pass.d        |  19 +
 .../gas/riscv/cv-simd-sub-sci-b-pass.s        |  12 +
 .../gas/riscv/cv-simd-sub-sci-h-fail.d        |   3 +
 .../gas/riscv/cv-simd-sub-sci-h-fail.l        |   5 +
 .../gas/riscv/cv-simd-sub-sci-h-fail.s        |   7 +
 .../gas/riscv/cv-simd-sub-sci-h-pass.d        |  19 +
 .../gas/riscv/cv-simd-sub-sci-h-pass.s        |  12 +
 .../gas/riscv/cv-simd-subrotmj-div2-fail.d    |   3 +
 .../gas/riscv/cv-simd-subrotmj-div2-fail.l    |   3 +
 .../gas/riscv/cv-simd-subrotmj-div2-fail.s    |   4 +
 .../gas/riscv/cv-simd-subrotmj-div2-pass.d    |  16 +
 .../gas/riscv/cv-simd-subrotmj-div2-pass.s    |   8 +
 .../gas/riscv/cv-simd-subrotmj-div4-fail.d    |   3 +
 .../gas/riscv/cv-simd-subrotmj-div4-fail.l    |   3 +
 .../gas/riscv/cv-simd-subrotmj-div4-fail.s    |   4 +
 .../gas/riscv/cv-simd-subrotmj-div4-pass.d    |  16 +
 .../gas/riscv/cv-simd-subrotmj-div4-pass.s    |   8 +
 .../gas/riscv/cv-simd-subrotmj-div8-fail.d    |   3 +
 .../gas/riscv/cv-simd-subrotmj-div8-fail.l    |   3 +
 .../gas/riscv/cv-simd-subrotmj-div8-fail.s    |   4 +
 .../gas/riscv/cv-simd-subrotmj-div8-pass.d    |  16 +
 .../gas/riscv/cv-simd-subrotmj-div8-pass.s    |   8 +
 .../gas/riscv/cv-simd-subrotmj-fail.d         |   3 +
 .../gas/riscv/cv-simd-subrotmj-fail.l         |   3 +
 .../gas/riscv/cv-simd-subrotmj-fail.s         |   4 +
 .../gas/riscv/cv-simd-subrotmj-pass.d         |  16 +
 .../gas/riscv/cv-simd-subrotmj-pass.s         |   8 +
 gas/testsuite/gas/riscv/cv-simd-xor-b-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-xor-b-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-xor-b-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-xor-b-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-xor-b-pass.s  |   8 +
 gas/testsuite/gas/riscv/cv-simd-xor-h-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-xor-h-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-xor-h-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-xor-h-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-xor-h-pass.s  |   8 +
 .../gas/riscv/cv-simd-xor-sc-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-xor-sc-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-xor-sc-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-xor-sc-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-xor-sc-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-xor-sc-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-xor-sc-h-fail.l         |   3 +
 .../gas/riscv/cv-simd-xor-sc-h-fail.s         |   4 +
 .../gas/riscv/cv-simd-xor-sc-h-pass.d         |  16 +
 .../gas/riscv/cv-simd-xor-sc-h-pass.s         |   8 +
 .../gas/riscv/cv-simd-xor-sci-b-fail.d        |   3 +
 .../gas/riscv/cv-simd-xor-sci-b-fail.l        |   5 +
 .../gas/riscv/cv-simd-xor-sci-b-fail.s        |   7 +
 .../gas/riscv/cv-simd-xor-sci-b-pass.d        |  19 +
 .../gas/riscv/cv-simd-xor-sci-b-pass.s        |  12 +
 .../gas/riscv/cv-simd-xor-sci-h-fail.d        |   3 +
 .../gas/riscv/cv-simd-xor-sci-h-fail.l        |   5 +
 .../gas/riscv/cv-simd-xor-sci-h-fail.s        |   7 +
 .../gas/riscv/cv-simd-xor-sci-h-pass.d        |  19 +
 .../gas/riscv/cv-simd-xor-sci-h-pass.s        |  12 +
 include/opcode/riscv-opc.h                    | 443 ++++++++++++++++++
 include/opcode/riscv.h                        |  14 +
 opcodes/riscv-dis.c                           |  22 +
 opcodes/riscv-opc.c                           | 222 +++++++++
 1112 files changed, 9963 insertions(+), 1 deletion(-)
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-abs-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-abs-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-abs-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-abs-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-abs-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-abs-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-abs-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-abs-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-abs-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-abs-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-div2-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-div2-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-div2-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-div2-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-div2-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-div4-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-div4-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-div4-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-div4-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-div4-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-div8-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-div8-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-div8-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-div8-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-div8-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxconj-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxconj-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxconj-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxconj-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxconj-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div2-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div2-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div2-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div2-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div2-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div4-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div4-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div4-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div4-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div4-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div8-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div8-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div8-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div8-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div8-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div2-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div2-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div2-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div2-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div2-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div4-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div4-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div4-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div4-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div4-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div8-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div8-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div8-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div8-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div8-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extract-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extract-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extract-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extract-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extract-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extract-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extract-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extract-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extract-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extract-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extractu-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extractu-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extractu-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extractu-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extractu-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extractu-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extractu-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extractu-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extractu-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extractu-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-insert-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-insert-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-insert-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-insert-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-insert-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-insert-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-insert-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-insert-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-insert-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-insert-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-march-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-march-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-march-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-march-xcvsimd.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-march-xcvsimd.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-pack-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-pack-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-pack-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-pack-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-pack-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-pack-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-pack-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-pack-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-pack-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-pack-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-packhi-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-packhi-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-packhi-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-packhi-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-packhi-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-packlo-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-packlo-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-packlo-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-packlo-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-packlo-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle2-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle2-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle2-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle2-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle2-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle2-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle2-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle2-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle2-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle2-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei0-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei0-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei0-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei0-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei0-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei1-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei1-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei1-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei1-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei1-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei2-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei2-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei2-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei2-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei2-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei3-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei3-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei3-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei3-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei3-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-div2-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-div2-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-div2-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-div2-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-div2-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-div4-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-div4-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-div4-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-div4-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-div4-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-div8-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-div8-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-div8-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-div8-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-div8-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-div2-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-div2-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-div2-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-div2-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-div2-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-div4-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-div4-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-div4-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-div4-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-div4-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-div8-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-div8-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-div8-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-div8-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-div8-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sci-h-pass.s

-- 
2.34.1


^ permalink raw reply	[flat|nested] 2+ messages in thread

* [PATCH 1/1] RISC-V: Add support for XCVsimd extension in CV32E40Pv2
  2024-02-08 22:15 [PATCH 0/1] RISC-V: Support CORE-V XCVSIMD extension mary.bennett682
@ 2024-02-08 22:15 ` mary.bennett682
  0 siblings, 0 replies; 2+ messages in thread
From: mary.bennett682 @ 2024-02-08 22:15 UTC (permalink / raw)
  To: binutils; +Cc: mary.bennett682

Spec: https://docs.openhwgroup.org/projects/cv32e40p-user-manual/en/latest/instruction_set_extensions.html

Contributors:
  Mary Bennett <mary.bennett@embecosm.com>
  Nandni Jamnadas <nandni.jamnadas@embecosm.com>
  Pietra Ferreira <pietra.ferreira@embecosm.com>
  Charlie Keaney
  Jessica Mills
  Craig Blackmore <craig.blackmore@embecosm.com>
  Simon Cook <simon.cook@embecosm.com>
  Jeremy Bennett <jeremy.bennett@embecosm.com>
  Helene Chelin <helene.chelin@embecosm.com>

bfd/ChangeLog:

        * elfxx-riscv.c (riscv_multi_subset_supports): Add `xcvsimd`
          instruction class.
        (riscv_multi_subset_supports_ext): Likewise.

gas/ChangeLog:

        * doc/c-riscv.texi: Note XCVsimd as an additional ISA extension
          for CORE-V.
	* config/tc-riscv.c: Add new operands b4, b5 and b8.
 	* testsuite/gas/riscv/cv-simd-abs-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-abs-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-abs-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-abs-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-abs-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-abs-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-abs-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-abs-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-abs-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-abs-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-add-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-add-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-add-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-add-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-add-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-add-div2-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-add-div2-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-add-div2-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-add-div2-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-add-div2-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-add-div4-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-add-div4-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-add-div4-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-add-div4-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-add-div4-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-add-div8-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-add-div8-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-add-div8-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-add-div8-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-add-div8-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-add-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-add-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-add-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-add-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-add-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-add-sc-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-add-sc-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-add-sc-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-add-sc-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-add-sc-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-add-sc-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-add-sc-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-add-sc-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-add-sc-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-add-sc-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-add-sci-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-add-sci-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-add-sci-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-add-sci-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-add-sci-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-add-sci-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-add-sci-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-add-sci-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-add-sci-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-add-sci-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-and-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-and-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-and-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-and-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-and-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-and-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-and-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-and-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-and-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-and-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-and-sc-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-and-sc-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-and-sc-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-and-sc-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-and-sc-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-and-sc-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-and-sc-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-and-sc-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-and-sc-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-and-sc-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-and-sci-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-and-sci-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-and-sci-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-and-sci-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-and-sci-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-and-sci-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-and-sci-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-and-sci-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-and-sci-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-and-sci-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-avg-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-avg-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-avg-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-avg-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-avg-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-avg-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-avg-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-avg-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-avg-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-avg-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-avg-sc-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-avg-sc-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-avg-sc-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-avg-sc-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-avg-sc-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-avg-sc-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-avg-sc-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-avg-sc-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-avg-sc-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-avg-sc-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-avg-sci-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-avg-sci-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-avg-sci-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-avg-sci-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-avg-sci-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-avg-sci-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-avg-sci-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-avg-sci-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-avg-sci-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-avg-sci-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-avgu-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-avgu-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-avgu-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-avgu-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-avgu-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-avgu-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-avgu-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-avgu-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-avgu-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-avgu-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-avgu-sc-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-avgu-sc-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-avgu-sc-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-avgu-sc-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-avgu-sc-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-avgu-sc-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-avgu-sc-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-avgu-sc-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-avgu-sc-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-avgu-sc-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-avgu-sci-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-avgu-sci-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-avgu-sci-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-avgu-sci-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-avgu-sci-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-avgu-sci-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-avgu-sci-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-avgu-sci-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-avgu-sci-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-avgu-sci-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpeq-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpeq-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpeq-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpeq-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpeq-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpeq-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpeq-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpeq-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpeq-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpeq-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpeq-sc-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpeq-sc-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpeq-sc-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpeq-sc-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpeq-sc-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpeq-sc-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpeq-sc-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpeq-sc-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpeq-sc-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpeq-sc-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpeq-sci-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpeq-sci-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpeq-sci-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpeq-sci-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpeq-sci-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpeq-sci-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpeq-sci-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpeq-sci-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpeq-sci-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpeq-sci-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpge-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpge-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpge-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpge-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpge-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpge-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpge-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpge-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpge-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpge-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpge-sc-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpge-sc-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpge-sc-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpge-sc-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpge-sc-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpge-sc-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpge-sc-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpge-sc-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpge-sc-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpge-sc-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpge-sci-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpge-sci-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpge-sci-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpge-sci-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpge-sci-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpge-sci-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpge-sci-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpge-sci-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpge-sci-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpge-sci-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgeu-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgeu-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgeu-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgeu-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgeu-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgeu-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgeu-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgeu-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgeu-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgeu-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgeu-sc-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgeu-sc-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgeu-sc-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgeu-sc-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgeu-sc-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgeu-sc-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgeu-sc-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgeu-sc-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgeu-sc-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgeu-sc-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgeu-sci-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgeu-sci-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgeu-sci-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgeu-sci-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgeu-sci-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgeu-sci-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgeu-sci-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgeu-sci-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgeu-sci-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgeu-sci-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgt-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgt-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgt-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgt-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgt-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgt-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgt-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgt-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgt-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgt-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgt-sc-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgt-sc-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgt-sc-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgt-sc-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgt-sc-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgt-sc-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgt-sc-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgt-sc-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgt-sc-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgt-sc-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgt-sci-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgt-sci-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgt-sci-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgt-sci-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgt-sci-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgt-sci-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgt-sci-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgt-sci-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgt-sci-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgt-sci-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgtu-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgtu-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgtu-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgtu-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgtu-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgtu-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgtu-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgtu-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgtu-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgtu-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgtu-sc-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgtu-sc-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgtu-sc-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgtu-sc-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgtu-sc-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgtu-sc-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgtu-sc-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgtu-sc-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgtu-sc-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgtu-sc-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgtu-sci-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgtu-sci-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgtu-sci-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgtu-sci-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgtu-sci-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgtu-sci-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgtu-sci-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgtu-sci-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgtu-sci-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpgtu-sci-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmple-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmple-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmple-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmple-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmple-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmple-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmple-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmple-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmple-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmple-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmple-sc-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmple-sc-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmple-sc-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmple-sc-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmple-sc-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmple-sc-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmple-sc-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmple-sc-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmple-sc-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmple-sc-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmple-sci-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmple-sci-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmple-sci-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmple-sci-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmple-sci-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmple-sci-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmple-sci-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmple-sci-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmple-sci-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmple-sci-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpleu-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpleu-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpleu-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpleu-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpleu-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpleu-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpleu-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpleu-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpleu-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpleu-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpleu-sc-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpleu-sc-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpleu-sc-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpleu-sc-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpleu-sc-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpleu-sc-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpleu-sc-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpleu-sc-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpleu-sc-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpleu-sc-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpleu-sci-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpleu-sci-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpleu-sci-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpleu-sci-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpleu-sci-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpleu-sci-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpleu-sci-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpleu-sci-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpleu-sci-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpleu-sci-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmplt-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmplt-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmplt-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmplt-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmplt-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmplt-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmplt-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmplt-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmplt-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmplt-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmplt-sc-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmplt-sc-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmplt-sc-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmplt-sc-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmplt-sc-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmplt-sc-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmplt-sc-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmplt-sc-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmplt-sc-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmplt-sc-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmplt-sci-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmplt-sci-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmplt-sci-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmplt-sci-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmplt-sci-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmplt-sci-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmplt-sci-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmplt-sci-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmplt-sci-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmplt-sci-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpltu-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpltu-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpltu-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpltu-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpltu-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpltu-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpltu-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpltu-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpltu-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpltu-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpltu-sc-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpltu-sc-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpltu-sc-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpltu-sc-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpltu-sc-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpltu-sc-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpltu-sc-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpltu-sc-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpltu-sc-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpltu-sc-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpltu-sci-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpltu-sci-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpltu-sci-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpltu-sci-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpltu-sci-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpltu-sci-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpltu-sci-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpltu-sci-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpltu-sci-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpltu-sci-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpne-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpne-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpne-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpne-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpne-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpne-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpne-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpne-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpne-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpne-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpne-sc-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpne-sc-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpne-sc-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpne-sc-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpne-sc-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpne-sc-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpne-sc-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpne-sc-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpne-sc-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpne-sc-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpne-sci-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpne-sci-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpne-sci-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpne-sci-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpne-sci-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpne-sci-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpne-sci-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cmpne-sci-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cmpne-sci-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cmpne-sci-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cplxconj-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cplxconj-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cplxconj-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cplxconj-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cplxconj-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-i-div2-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-i-div2-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-i-div2-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-i-div2-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-i-div2-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-i-div4-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-i-div4-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-i-div4-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-i-div4-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-i-div4-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-i-div8-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-i-div8-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-i-div8-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-i-div8-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-i-div8-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-i-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-i-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-i-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-i-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-i-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-r-div2-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-r-div2-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-r-div2-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-r-div2-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-r-div2-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-r-div4-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-r-div4-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-r-div4-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-r-div4-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-r-div4-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-r-div8-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-r-div8-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-r-div8-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-r-div8-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-r-div8-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-r-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-r-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-r-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-r-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-cplxmul-r-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotsp-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotsp-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-dotsp-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotsp-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotsp-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotsp-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotsp-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-dotsp-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotsp-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotsp-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotsp-sc-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotsp-sc-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-dotsp-sc-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotsp-sc-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotsp-sc-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotsp-sc-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotsp-sc-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-dotsp-sc-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotsp-sc-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotsp-sc-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotsp-sci-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotsp-sci-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-dotsp-sci-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotsp-sci-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotsp-sci-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotsp-sci-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotsp-sci-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-dotsp-sci-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotsp-sci-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotsp-sci-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotup-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotup-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-dotup-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotup-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotup-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotup-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotup-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-dotup-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotup-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotup-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotup-sc-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotup-sc-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-dotup-sc-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotup-sc-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotup-sc-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotup-sc-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotup-sc-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-dotup-sc-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotup-sc-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotup-sc-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotup-sci-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotup-sci-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-dotup-sci-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotup-sci-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotup-sci-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotup-sci-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotup-sci-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-dotup-sci-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotup-sci-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotup-sci-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotusp-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotusp-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-dotusp-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotusp-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotusp-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotusp-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotusp-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-dotusp-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotusp-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotusp-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotusp-sc-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotusp-sc-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-dotusp-sc-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotusp-sc-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotusp-sc-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotusp-sc-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotusp-sc-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-dotusp-sc-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotusp-sc-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotusp-sc-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotusp-sci-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotusp-sci-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-dotusp-sci-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotusp-sci-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotusp-sci-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotusp-sci-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotusp-sci-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-dotusp-sci-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-dotusp-sci-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-dotusp-sci-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-extract-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-extract-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-extract-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-extract-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-extract-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-extract-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-extract-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-extract-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-extract-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-extract-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-extractu-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-extractu-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-extractu-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-extractu-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-extractu-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-extractu-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-extractu-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-extractu-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-extractu-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-extractu-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-insert-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-insert-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-insert-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-insert-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-insert-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-insert-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-insert-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-insert-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-insert-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-insert-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-march-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-march-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-march-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-march-xcvsimd.d
 	* testsuite/gas/riscv/cv-simd-march-xcvsimd.s
 	* testsuite/gas/riscv/cv-simd-max-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-max-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-max-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-max-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-max-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-max-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-max-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-max-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-max-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-max-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-max-sc-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-max-sc-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-max-sc-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-max-sc-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-max-sc-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-max-sc-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-max-sc-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-max-sc-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-max-sc-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-max-sc-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-max-sci-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-max-sci-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-max-sci-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-max-sci-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-max-sci-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-max-sci-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-max-sci-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-max-sci-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-max-sci-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-max-sci-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-maxu-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-maxu-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-maxu-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-maxu-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-maxu-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-maxu-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-maxu-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-maxu-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-maxu-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-maxu-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-maxu-sc-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-maxu-sc-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-maxu-sc-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-maxu-sc-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-maxu-sc-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-maxu-sc-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-maxu-sc-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-maxu-sc-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-maxu-sc-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-maxu-sc-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-maxu-sci-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-maxu-sci-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-maxu-sci-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-maxu-sci-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-maxu-sci-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-maxu-sci-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-maxu-sci-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-maxu-sci-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-maxu-sci-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-maxu-sci-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-min-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-min-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-min-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-min-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-min-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-min-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-min-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-min-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-min-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-min-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-min-sc-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-min-sc-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-min-sc-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-min-sc-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-min-sc-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-min-sc-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-min-sc-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-min-sc-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-min-sc-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-min-sc-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-min-sci-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-min-sci-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-min-sci-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-min-sci-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-min-sci-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-min-sci-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-min-sci-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-min-sci-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-min-sci-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-min-sci-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-minu-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-minu-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-minu-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-minu-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-minu-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-minu-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-minu-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-minu-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-minu-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-minu-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-minu-sc-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-minu-sc-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-minu-sc-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-minu-sc-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-minu-sc-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-minu-sc-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-minu-sc-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-minu-sc-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-minu-sc-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-minu-sc-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-minu-sci-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-minu-sci-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-minu-sci-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-minu-sci-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-minu-sci-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-minu-sci-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-minu-sci-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-minu-sci-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-minu-sci-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-minu-sci-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-or-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-or-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-or-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-or-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-or-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-or-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-or-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-or-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-or-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-or-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-or-sc-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-or-sc-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-or-sc-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-or-sc-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-or-sc-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-or-sc-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-or-sc-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-or-sc-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-or-sc-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-or-sc-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-or-sci-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-or-sci-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-or-sci-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-or-sci-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-or-sci-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-or-sci-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-or-sci-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-or-sci-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-or-sci-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-or-sci-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-pack-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-pack-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-pack-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-pack-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-pack-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-pack-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-pack-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-pack-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-pack-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-pack-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-packhi-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-packhi-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-packhi-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-packhi-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-packhi-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-packlo-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-packlo-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-packlo-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-packlo-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-packlo-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotsp-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotsp-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sdotsp-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotsp-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotsp-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotsp-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotsp-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sdotsp-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotsp-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotsp-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotsp-sc-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotsp-sc-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sdotsp-sc-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotsp-sc-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotsp-sc-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotsp-sc-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotsp-sc-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sdotsp-sc-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotsp-sc-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotsp-sc-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotsp-sci-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotsp-sci-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sdotsp-sci-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotsp-sci-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotsp-sci-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotsp-sci-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotsp-sci-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sdotsp-sci-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotsp-sci-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotsp-sci-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotup-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotup-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sdotup-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotup-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotup-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotup-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotup-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sdotup-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotup-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotup-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotup-sc-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotup-sc-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sdotup-sc-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotup-sc-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotup-sc-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotup-sc-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotup-sc-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sdotup-sc-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotup-sc-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotup-sc-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotup-sci-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotup-sci-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sdotup-sci-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotup-sci-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotup-sci-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotup-sci-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotup-sci-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sdotup-sci-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotup-sci-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotup-sci-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotusp-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotusp-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sdotusp-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotusp-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotusp-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotusp-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotusp-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sdotusp-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotusp-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotusp-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotusp-sc-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotusp-sc-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sdotusp-sc-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotusp-sc-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotusp-sc-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotusp-sc-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotusp-sc-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sdotusp-sc-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotusp-sc-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotusp-sc-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotusp-sci-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotusp-sci-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sdotusp-sci-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotusp-sci-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotusp-sci-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotusp-sci-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotusp-sci-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sdotusp-sci-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sdotusp-sci-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sdotusp-sci-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-shuffle-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-shuffle-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-shuffle-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-shuffle-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-shuffle-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-shuffle-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-shuffle-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-shuffle-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-shuffle-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-shuffle-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-shuffle-sci-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-shuffle-sci-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-shuffle-sci-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-shuffle-sci-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-shuffle-sci-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-shuffle2-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-shuffle2-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-shuffle2-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-shuffle2-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-shuffle2-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-shuffle2-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-shuffle2-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-shuffle2-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-shuffle2-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-shuffle2-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-shufflei0-sci-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-shufflei0-sci-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-shufflei0-sci-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-shufflei0-sci-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-shufflei0-sci-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-shufflei1-sci-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-shufflei1-sci-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-shufflei1-sci-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-shufflei1-sci-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-shufflei1-sci-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-shufflei2-sci-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-shufflei2-sci-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-shufflei2-sci-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-shufflei2-sci-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-shufflei2-sci-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-shufflei3-sci-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-shufflei3-sci-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-shufflei3-sci-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-shufflei3-sci-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-shufflei3-sci-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sll-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sll-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sll-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sll-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sll-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sll-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sll-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sll-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sll-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sll-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sll-sc-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sll-sc-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sll-sc-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sll-sc-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sll-sc-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sll-sc-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sll-sc-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sll-sc-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sll-sc-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sll-sc-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sll-sci-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sll-sci-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sll-sci-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sll-sci-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sll-sci-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sll-sci-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sll-sci-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sll-sci-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sll-sci-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sll-sci-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sra-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sra-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sra-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sra-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sra-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sra-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sra-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sra-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sra-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sra-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sra-sc-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sra-sc-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sra-sc-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sra-sc-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sra-sc-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sra-sc-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sra-sc-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sra-sc-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sra-sc-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sra-sc-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sra-sci-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sra-sci-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sra-sci-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sra-sci-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sra-sci-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sra-sci-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sra-sci-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sra-sci-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sra-sci-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sra-sci-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-srl-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-srl-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-srl-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-srl-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-srl-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-srl-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-srl-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-srl-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-srl-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-srl-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-srl-sc-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-srl-sc-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-srl-sc-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-srl-sc-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-srl-sc-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-srl-sc-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-srl-sc-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-srl-sc-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-srl-sc-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-srl-sc-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-srl-sci-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-srl-sci-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-srl-sci-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-srl-sci-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-srl-sci-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-srl-sci-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-srl-sci-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-srl-sci-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-srl-sci-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-srl-sci-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sub-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sub-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sub-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sub-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sub-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sub-div2-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sub-div2-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sub-div2-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sub-div2-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sub-div2-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sub-div4-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sub-div4-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sub-div4-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sub-div4-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sub-div4-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sub-div8-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sub-div8-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sub-div8-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sub-div8-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sub-div8-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sub-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sub-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sub-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sub-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sub-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sub-sc-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sub-sc-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sub-sc-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sub-sc-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sub-sc-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sub-sc-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sub-sc-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sub-sc-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sub-sc-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sub-sc-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sub-sci-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sub-sci-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sub-sci-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sub-sci-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sub-sci-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-sub-sci-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-sub-sci-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-sub-sci-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-sub-sci-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-sub-sci-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-subrotmj-div2-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-subrotmj-div2-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-subrotmj-div2-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-subrotmj-div2-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-subrotmj-div2-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-subrotmj-div4-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-subrotmj-div4-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-subrotmj-div4-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-subrotmj-div4-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-subrotmj-div4-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-subrotmj-div8-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-subrotmj-div8-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-subrotmj-div8-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-subrotmj-div8-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-subrotmj-div8-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-subrotmj-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-subrotmj-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-subrotmj-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-subrotmj-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-subrotmj-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-xor-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-xor-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-xor-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-xor-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-xor-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-xor-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-xor-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-xor-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-xor-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-xor-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-xor-sc-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-xor-sc-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-xor-sc-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-xor-sc-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-xor-sc-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-xor-sc-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-xor-sc-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-xor-sc-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-xor-sc-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-xor-sc-h-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-xor-sci-b-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-xor-sci-b-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-xor-sci-b-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-xor-sci-b-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-xor-sci-b-pass.s: New test.
 	* testsuite/gas/riscv/cv-simd-xor-sci-h-fail.d: New test.
 	* testsuite/gas/riscv/cv-simd-xor-sci-h-fail.l: New test.
 	* testsuite/gas/riscv/cv-simd-xor-sci-h-fail.s: New test.
 	* testsuite/gas/riscv/cv-simd-xor-sci-h-pass.d: New test.
 	* testsuite/gas/riscv/cv-simd-xor-sci-h-pass.s: New test.

include/ChangeLog:

        * opcode/riscv-opc.h: Add corresponding MATCH and MASK
          instruction opcode macros.
        * opcode/riscv.h (riscv_insn_class): Add INSN_CLASS_XCVSIMD.

opcodes/ChangeLog:

	* riscv-dis.c (print_insn_args): Add new operands.
        * riscv-opc.c (riscv_opcode): Add simd instructions.
---
 bfd/elfxx-riscv.c                             |   5 +
 gas/config/tc-riscv.c                         |  96 +++-
 gas/doc/c-riscv.texi                          |   5 +
 gas/testsuite/gas/riscv/cv-simd-abs-b-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-abs-b-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-abs-b-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-abs-b-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-abs-b-pass.s  |   8 +
 gas/testsuite/gas/riscv/cv-simd-abs-h-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-abs-h-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-abs-h-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-abs-h-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-abs-h-pass.s  |   8 +
 gas/testsuite/gas/riscv/cv-simd-add-b-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-add-b-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-add-b-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-add-b-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-add-b-pass.s  |   8 +
 .../gas/riscv/cv-simd-add-div2-fail.d         |   3 +
 .../gas/riscv/cv-simd-add-div2-fail.l         |   3 +
 .../gas/riscv/cv-simd-add-div2-fail.s         |   4 +
 .../gas/riscv/cv-simd-add-div2-pass.d         |  16 +
 .../gas/riscv/cv-simd-add-div2-pass.s         |   8 +
 .../gas/riscv/cv-simd-add-div4-fail.d         |   3 +
 .../gas/riscv/cv-simd-add-div4-fail.l         |   3 +
 .../gas/riscv/cv-simd-add-div4-fail.s         |   4 +
 .../gas/riscv/cv-simd-add-div4-pass.d         |  16 +
 .../gas/riscv/cv-simd-add-div4-pass.s         |   8 +
 .../gas/riscv/cv-simd-add-div8-fail.d         |   3 +
 .../gas/riscv/cv-simd-add-div8-fail.l         |   3 +
 .../gas/riscv/cv-simd-add-div8-fail.s         |   4 +
 .../gas/riscv/cv-simd-add-div8-pass.d         |  16 +
 .../gas/riscv/cv-simd-add-div8-pass.s         |   8 +
 gas/testsuite/gas/riscv/cv-simd-add-h-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-add-h-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-add-h-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-add-h-pass.d  |  15 +
 gas/testsuite/gas/riscv/cv-simd-add-h-pass.s  |   8 +
 .../gas/riscv/cv-simd-add-sc-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-add-sc-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-add-sc-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-add-sc-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-add-sc-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-add-sc-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-add-sc-h-fail.l         |   3 +
 .../gas/riscv/cv-simd-add-sc-h-fail.s         |   4 +
 .../gas/riscv/cv-simd-add-sc-h-pass.d         |  16 +
 .../gas/riscv/cv-simd-add-sc-h-pass.s         |   8 +
 .../gas/riscv/cv-simd-add-sci-b-fail.d        |   3 +
 .../gas/riscv/cv-simd-add-sci-b-fail.l        |   5 +
 .../gas/riscv/cv-simd-add-sci-b-fail.s        |   7 +
 .../gas/riscv/cv-simd-add-sci-b-pass.d        |  19 +
 .../gas/riscv/cv-simd-add-sci-b-pass.s        |  12 +
 .../gas/riscv/cv-simd-add-sci-h-fail.d        |   3 +
 .../gas/riscv/cv-simd-add-sci-h-fail.l        |   5 +
 .../gas/riscv/cv-simd-add-sci-h-fail.s        |   7 +
 .../gas/riscv/cv-simd-add-sci-h-pass.d        |  19 +
 .../gas/riscv/cv-simd-add-sci-h-pass.s        |  12 +
 gas/testsuite/gas/riscv/cv-simd-and-b-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-and-b-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-and-b-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-and-b-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-and-b-pass.s  |   8 +
 gas/testsuite/gas/riscv/cv-simd-and-h-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-and-h-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-and-h-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-and-h-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-and-h-pass.s  |   8 +
 .../gas/riscv/cv-simd-and-sc-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-and-sc-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-and-sc-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-and-sc-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-and-sc-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-and-sc-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-and-sc-h-fail.l         |   3 +
 .../gas/riscv/cv-simd-and-sc-h-fail.s         |   4 +
 .../gas/riscv/cv-simd-and-sc-h-pass.d         |  16 +
 .../gas/riscv/cv-simd-and-sc-h-pass.s         |   8 +
 .../gas/riscv/cv-simd-and-sci-b-fail.d        |   3 +
 .../gas/riscv/cv-simd-and-sci-b-fail.l        |   5 +
 .../gas/riscv/cv-simd-and-sci-b-fail.s        |   7 +
 .../gas/riscv/cv-simd-and-sci-b-pass.d        |  19 +
 .../gas/riscv/cv-simd-and-sci-b-pass.s        |  12 +
 .../gas/riscv/cv-simd-and-sci-h-fail.d        |   3 +
 .../gas/riscv/cv-simd-and-sci-h-fail.l        |   5 +
 .../gas/riscv/cv-simd-and-sci-h-fail.s        |   7 +
 .../gas/riscv/cv-simd-and-sci-h-pass.d        |  19 +
 .../gas/riscv/cv-simd-and-sci-h-pass.s        |  12 +
 gas/testsuite/gas/riscv/cv-simd-avg-b-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-avg-b-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-avg-b-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-avg-b-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-avg-b-pass.s  |   8 +
 gas/testsuite/gas/riscv/cv-simd-avg-h-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-avg-h-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-avg-h-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-avg-h-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-avg-h-pass.s  |   8 +
 .../gas/riscv/cv-simd-avg-sc-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-avg-sc-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-avg-sc-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-avg-sc-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-avg-sc-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-avg-sc-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-avg-sc-h-fail.l         |   3 +
 .../gas/riscv/cv-simd-avg-sc-h-fail.s         |   4 +
 .../gas/riscv/cv-simd-avg-sc-h-pass.d         |  16 +
 .../gas/riscv/cv-simd-avg-sc-h-pass.s         |   8 +
 .../gas/riscv/cv-simd-avg-sci-b-fail.d        |   3 +
 .../gas/riscv/cv-simd-avg-sci-b-fail.l        |   5 +
 .../gas/riscv/cv-simd-avg-sci-b-fail.s        |   7 +
 .../gas/riscv/cv-simd-avg-sci-b-pass.d        |  19 +
 .../gas/riscv/cv-simd-avg-sci-b-pass.s        |  12 +
 .../gas/riscv/cv-simd-avg-sci-h-fail.d        |   3 +
 .../gas/riscv/cv-simd-avg-sci-h-fail.l        |   5 +
 .../gas/riscv/cv-simd-avg-sci-h-fail.s        |   7 +
 .../gas/riscv/cv-simd-avg-sci-h-pass.d        |  19 +
 .../gas/riscv/cv-simd-avg-sci-h-pass.s        |  12 +
 gas/testsuite/gas/riscv/cv-simd-avgu-b-fail.d |   3 +
 gas/testsuite/gas/riscv/cv-simd-avgu-b-fail.l |   3 +
 gas/testsuite/gas/riscv/cv-simd-avgu-b-fail.s |   4 +
 gas/testsuite/gas/riscv/cv-simd-avgu-b-pass.d |  16 +
 gas/testsuite/gas/riscv/cv-simd-avgu-b-pass.s |   8 +
 gas/testsuite/gas/riscv/cv-simd-avgu-h-fail.d |   3 +
 gas/testsuite/gas/riscv/cv-simd-avgu-h-fail.l |   3 +
 gas/testsuite/gas/riscv/cv-simd-avgu-h-fail.s |   4 +
 gas/testsuite/gas/riscv/cv-simd-avgu-h-pass.d |  16 +
 gas/testsuite/gas/riscv/cv-simd-avgu-h-pass.s |   8 +
 .../gas/riscv/cv-simd-avgu-sc-b-fail.d        |   3 +
 .../gas/riscv/cv-simd-avgu-sc-b-fail.l        |   3 +
 .../gas/riscv/cv-simd-avgu-sc-b-fail.s        |   4 +
 .../gas/riscv/cv-simd-avgu-sc-b-pass.d        |  16 +
 .../gas/riscv/cv-simd-avgu-sc-b-pass.s        |   8 +
 .../gas/riscv/cv-simd-avgu-sc-h-fail.d        |   3 +
 .../gas/riscv/cv-simd-avgu-sc-h-fail.l        |   3 +
 .../gas/riscv/cv-simd-avgu-sc-h-fail.s        |   4 +
 .../gas/riscv/cv-simd-avgu-sc-h-pass.d        |  16 +
 .../gas/riscv/cv-simd-avgu-sc-h-pass.s        |   8 +
 .../gas/riscv/cv-simd-avgu-sci-b-fail.d       |   3 +
 .../gas/riscv/cv-simd-avgu-sci-b-fail.l       |   5 +
 .../gas/riscv/cv-simd-avgu-sci-b-fail.s       |   7 +
 .../gas/riscv/cv-simd-avgu-sci-b-pass.d       |  18 +
 .../gas/riscv/cv-simd-avgu-sci-b-pass.s       |  11 +
 .../gas/riscv/cv-simd-avgu-sci-h-fail.d       |   3 +
 .../gas/riscv/cv-simd-avgu-sci-h-fail.l       |   5 +
 .../gas/riscv/cv-simd-avgu-sci-h-fail.s       |   7 +
 .../gas/riscv/cv-simd-avgu-sci-h-pass.d       |  18 +
 .../gas/riscv/cv-simd-avgu-sci-h-pass.s       |  11 +
 .../gas/riscv/cv-simd-cmpeq-b-fail.d          |   3 +
 .../gas/riscv/cv-simd-cmpeq-b-fail.l          |   3 +
 .../gas/riscv/cv-simd-cmpeq-b-fail.s          |   4 +
 .../gas/riscv/cv-simd-cmpeq-b-pass.d          |  16 +
 .../gas/riscv/cv-simd-cmpeq-b-pass.s          |   8 +
 .../gas/riscv/cv-simd-cmpeq-h-fail.d          |   3 +
 .../gas/riscv/cv-simd-cmpeq-h-fail.l          |   3 +
 .../gas/riscv/cv-simd-cmpeq-h-fail.s          |   4 +
 .../gas/riscv/cv-simd-cmpeq-h-pass.d          |  16 +
 .../gas/riscv/cv-simd-cmpeq-h-pass.s          |   8 +
 .../gas/riscv/cv-simd-cmpeq-sc-b-fail.d       |   3 +
 .../gas/riscv/cv-simd-cmpeq-sc-b-fail.l       |   3 +
 .../gas/riscv/cv-simd-cmpeq-sc-b-fail.s       |   4 +
 .../gas/riscv/cv-simd-cmpeq-sc-b-pass.d       |  16 +
 .../gas/riscv/cv-simd-cmpeq-sc-b-pass.s       |   8 +
 .../gas/riscv/cv-simd-cmpeq-sc-h-fail.d       |   3 +
 .../gas/riscv/cv-simd-cmpeq-sc-h-fail.l       |   3 +
 .../gas/riscv/cv-simd-cmpeq-sc-h-fail.s       |   4 +
 .../gas/riscv/cv-simd-cmpeq-sc-h-pass.d       |  16 +
 .../gas/riscv/cv-simd-cmpeq-sc-h-pass.s       |   8 +
 .../gas/riscv/cv-simd-cmpeq-sci-b-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmpeq-sci-b-fail.l      |   5 +
 .../gas/riscv/cv-simd-cmpeq-sci-b-fail.s      |   7 +
 .../gas/riscv/cv-simd-cmpeq-sci-b-pass.d      |  19 +
 .../gas/riscv/cv-simd-cmpeq-sci-b-pass.s      |  12 +
 .../gas/riscv/cv-simd-cmpeq-sci-h-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmpeq-sci-h-fail.l      |   5 +
 .../gas/riscv/cv-simd-cmpeq-sci-h-fail.s      |   7 +
 .../gas/riscv/cv-simd-cmpeq-sci-h-pass.d      |  19 +
 .../gas/riscv/cv-simd-cmpeq-sci-h-pass.s      |  12 +
 .../gas/riscv/cv-simd-cmpge-b-fail.d          |   3 +
 .../gas/riscv/cv-simd-cmpge-b-fail.l          |   3 +
 .../gas/riscv/cv-simd-cmpge-b-fail.s          |   4 +
 .../gas/riscv/cv-simd-cmpge-b-pass.d          |  16 +
 .../gas/riscv/cv-simd-cmpge-b-pass.s          |   8 +
 .../gas/riscv/cv-simd-cmpge-h-fail.d          |   3 +
 .../gas/riscv/cv-simd-cmpge-h-fail.l          |   3 +
 .../gas/riscv/cv-simd-cmpge-h-fail.s          |   4 +
 .../gas/riscv/cv-simd-cmpge-h-pass.d          |  16 +
 .../gas/riscv/cv-simd-cmpge-h-pass.s          |   8 +
 .../gas/riscv/cv-simd-cmpge-sc-b-fail.d       |   3 +
 .../gas/riscv/cv-simd-cmpge-sc-b-fail.l       |   3 +
 .../gas/riscv/cv-simd-cmpge-sc-b-fail.s       |   4 +
 .../gas/riscv/cv-simd-cmpge-sc-b-pass.d       |  16 +
 .../gas/riscv/cv-simd-cmpge-sc-b-pass.s       |   8 +
 .../gas/riscv/cv-simd-cmpge-sc-h-fail.d       |   3 +
 .../gas/riscv/cv-simd-cmpge-sc-h-fail.l       |   3 +
 .../gas/riscv/cv-simd-cmpge-sc-h-fail.s       |   4 +
 .../gas/riscv/cv-simd-cmpge-sc-h-pass.d       |  16 +
 .../gas/riscv/cv-simd-cmpge-sc-h-pass.s       |   8 +
 .../gas/riscv/cv-simd-cmpge-sci-b-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmpge-sci-b-fail.l      |   5 +
 .../gas/riscv/cv-simd-cmpge-sci-b-fail.s      |   7 +
 .../gas/riscv/cv-simd-cmpge-sci-b-pass.d      |  19 +
 .../gas/riscv/cv-simd-cmpge-sci-b-pass.s      |  12 +
 .../gas/riscv/cv-simd-cmpge-sci-h-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmpge-sci-h-fail.l      |   5 +
 .../gas/riscv/cv-simd-cmpge-sci-h-fail.s      |   7 +
 .../gas/riscv/cv-simd-cmpge-sci-h-pass.d      |  19 +
 .../gas/riscv/cv-simd-cmpge-sci-h-pass.s      |  12 +
 .../gas/riscv/cv-simd-cmpgeu-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-cmpgeu-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-cmpgeu-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-cmpgeu-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-cmpgeu-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-cmpgeu-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-cmpgeu-h-fail.l         |   3 +
 .../gas/riscv/cv-simd-cmpgeu-h-fail.s         |   4 +
 .../gas/riscv/cv-simd-cmpgeu-h-pass.d         |  16 +
 .../gas/riscv/cv-simd-cmpgeu-h-pass.s         |   8 +
 .../gas/riscv/cv-simd-cmpgeu-sc-b-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmpgeu-sc-b-fail.l      |   3 +
 .../gas/riscv/cv-simd-cmpgeu-sc-b-fail.s      |   4 +
 .../gas/riscv/cv-simd-cmpgeu-sc-b-pass.d      |  16 +
 .../gas/riscv/cv-simd-cmpgeu-sc-b-pass.s      |   8 +
 .../gas/riscv/cv-simd-cmpgeu-sc-h-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmpgeu-sc-h-fail.l      |   3 +
 .../gas/riscv/cv-simd-cmpgeu-sc-h-fail.s      |   4 +
 .../gas/riscv/cv-simd-cmpgeu-sc-h-pass.d      |  16 +
 .../gas/riscv/cv-simd-cmpgeu-sc-h-pass.s      |   8 +
 .../gas/riscv/cv-simd-cmpgeu-sci-b-fail.d     |   3 +
 .../gas/riscv/cv-simd-cmpgeu-sci-b-fail.l     |   5 +
 .../gas/riscv/cv-simd-cmpgeu-sci-b-fail.s     |   7 +
 .../gas/riscv/cv-simd-cmpgeu-sci-b-pass.d     |  18 +
 .../gas/riscv/cv-simd-cmpgeu-sci-b-pass.s     |  11 +
 .../gas/riscv/cv-simd-cmpgeu-sci-h-fail.d     |   3 +
 .../gas/riscv/cv-simd-cmpgeu-sci-h-fail.l     |   5 +
 .../gas/riscv/cv-simd-cmpgeu-sci-h-fail.s     |   7 +
 .../gas/riscv/cv-simd-cmpgeu-sci-h-pass.d     |  18 +
 .../gas/riscv/cv-simd-cmpgeu-sci-h-pass.s     |  11 +
 .../gas/riscv/cv-simd-cmpgt-b-fail.d          |   3 +
 .../gas/riscv/cv-simd-cmpgt-b-fail.l          |   3 +
 .../gas/riscv/cv-simd-cmpgt-b-fail.s          |   4 +
 .../gas/riscv/cv-simd-cmpgt-b-pass.d          |  16 +
 .../gas/riscv/cv-simd-cmpgt-b-pass.s          |   8 +
 .../gas/riscv/cv-simd-cmpgt-h-fail.d          |   3 +
 .../gas/riscv/cv-simd-cmpgt-h-fail.l          |   3 +
 .../gas/riscv/cv-simd-cmpgt-h-fail.s          |   4 +
 .../gas/riscv/cv-simd-cmpgt-h-pass.d          |  16 +
 .../gas/riscv/cv-simd-cmpgt-h-pass.s          |   8 +
 .../gas/riscv/cv-simd-cmpgt-sc-b-fail.d       |   3 +
 .../gas/riscv/cv-simd-cmpgt-sc-b-fail.l       |   3 +
 .../gas/riscv/cv-simd-cmpgt-sc-b-fail.s       |   4 +
 .../gas/riscv/cv-simd-cmpgt-sc-b-pass.d       |  16 +
 .../gas/riscv/cv-simd-cmpgt-sc-b-pass.s       |   8 +
 .../gas/riscv/cv-simd-cmpgt-sc-h-fail.d       |   3 +
 .../gas/riscv/cv-simd-cmpgt-sc-h-fail.l       |   3 +
 .../gas/riscv/cv-simd-cmpgt-sc-h-fail.s       |   4 +
 .../gas/riscv/cv-simd-cmpgt-sc-h-pass.d       |  16 +
 .../gas/riscv/cv-simd-cmpgt-sc-h-pass.s       |   8 +
 .../gas/riscv/cv-simd-cmpgt-sci-b-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmpgt-sci-b-fail.l      |   5 +
 .../gas/riscv/cv-simd-cmpgt-sci-b-fail.s      |   7 +
 .../gas/riscv/cv-simd-cmpgt-sci-b-pass.d      |  19 +
 .../gas/riscv/cv-simd-cmpgt-sci-b-pass.s      |  12 +
 .../gas/riscv/cv-simd-cmpgt-sci-h-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmpgt-sci-h-fail.l      |   5 +
 .../gas/riscv/cv-simd-cmpgt-sci-h-fail.s      |   7 +
 .../gas/riscv/cv-simd-cmpgt-sci-h-pass.d      |  19 +
 .../gas/riscv/cv-simd-cmpgt-sci-h-pass.s      |  12 +
 .../gas/riscv/cv-simd-cmpgtu-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-cmpgtu-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-cmpgtu-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-cmpgtu-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-cmpgtu-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-cmpgtu-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-cmpgtu-h-fail.l         |   3 +
 .../gas/riscv/cv-simd-cmpgtu-h-fail.s         |   4 +
 .../gas/riscv/cv-simd-cmpgtu-h-pass.d         |  16 +
 .../gas/riscv/cv-simd-cmpgtu-h-pass.s         |   8 +
 .../gas/riscv/cv-simd-cmpgtu-sc-b-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmpgtu-sc-b-fail.l      |   3 +
 .../gas/riscv/cv-simd-cmpgtu-sc-b-fail.s      |   4 +
 .../gas/riscv/cv-simd-cmpgtu-sc-b-pass.d      |  16 +
 .../gas/riscv/cv-simd-cmpgtu-sc-b-pass.s      |   8 +
 .../gas/riscv/cv-simd-cmpgtu-sc-h-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmpgtu-sc-h-fail.l      |   3 +
 .../gas/riscv/cv-simd-cmpgtu-sc-h-fail.s      |   4 +
 .../gas/riscv/cv-simd-cmpgtu-sc-h-pass.d      |  16 +
 .../gas/riscv/cv-simd-cmpgtu-sc-h-pass.s      |   8 +
 .../gas/riscv/cv-simd-cmpgtu-sci-b-fail.d     |   3 +
 .../gas/riscv/cv-simd-cmpgtu-sci-b-fail.l     |   5 +
 .../gas/riscv/cv-simd-cmpgtu-sci-b-fail.s     |   7 +
 .../gas/riscv/cv-simd-cmpgtu-sci-b-pass.d     |  18 +
 .../gas/riscv/cv-simd-cmpgtu-sci-b-pass.s     |  11 +
 .../gas/riscv/cv-simd-cmpgtu-sci-h-fail.d     |   3 +
 .../gas/riscv/cv-simd-cmpgtu-sci-h-fail.l     |   5 +
 .../gas/riscv/cv-simd-cmpgtu-sci-h-fail.s     |   7 +
 .../gas/riscv/cv-simd-cmpgtu-sci-h-pass.d     |  18 +
 .../gas/riscv/cv-simd-cmpgtu-sci-h-pass.s     |  11 +
 .../gas/riscv/cv-simd-cmple-b-fail.d          |   3 +
 .../gas/riscv/cv-simd-cmple-b-fail.l          |   3 +
 .../gas/riscv/cv-simd-cmple-b-fail.s          |   4 +
 .../gas/riscv/cv-simd-cmple-b-pass.d          |  16 +
 .../gas/riscv/cv-simd-cmple-b-pass.s          |   8 +
 .../gas/riscv/cv-simd-cmple-h-fail.d          |   3 +
 .../gas/riscv/cv-simd-cmple-h-fail.l          |   3 +
 .../gas/riscv/cv-simd-cmple-h-fail.s          |   4 +
 .../gas/riscv/cv-simd-cmple-h-pass.d          |  16 +
 .../gas/riscv/cv-simd-cmple-h-pass.s          |   8 +
 .../gas/riscv/cv-simd-cmple-sc-b-fail.d       |   3 +
 .../gas/riscv/cv-simd-cmple-sc-b-fail.l       |   3 +
 .../gas/riscv/cv-simd-cmple-sc-b-fail.s       |   4 +
 .../gas/riscv/cv-simd-cmple-sc-b-pass.d       |  16 +
 .../gas/riscv/cv-simd-cmple-sc-b-pass.s       |   8 +
 .../gas/riscv/cv-simd-cmple-sc-h-fail.d       |   3 +
 .../gas/riscv/cv-simd-cmple-sc-h-fail.l       |   3 +
 .../gas/riscv/cv-simd-cmple-sc-h-fail.s       |   4 +
 .../gas/riscv/cv-simd-cmple-sc-h-pass.d       |  16 +
 .../gas/riscv/cv-simd-cmple-sc-h-pass.s       |   8 +
 .../gas/riscv/cv-simd-cmple-sci-b-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmple-sci-b-fail.l      |   5 +
 .../gas/riscv/cv-simd-cmple-sci-b-fail.s      |   7 +
 .../gas/riscv/cv-simd-cmple-sci-b-pass.d      |  19 +
 .../gas/riscv/cv-simd-cmple-sci-b-pass.s      |  12 +
 .../gas/riscv/cv-simd-cmple-sci-h-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmple-sci-h-fail.l      |   5 +
 .../gas/riscv/cv-simd-cmple-sci-h-fail.s      |   7 +
 .../gas/riscv/cv-simd-cmple-sci-h-pass.d      |  19 +
 .../gas/riscv/cv-simd-cmple-sci-h-pass.s      |  12 +
 .../gas/riscv/cv-simd-cmpleu-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-cmpleu-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-cmpleu-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-cmpleu-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-cmpleu-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-cmpleu-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-cmpleu-h-fail.l         |   3 +
 .../gas/riscv/cv-simd-cmpleu-h-fail.s         |   4 +
 .../gas/riscv/cv-simd-cmpleu-h-pass.d         |  16 +
 .../gas/riscv/cv-simd-cmpleu-h-pass.s         |   8 +
 .../gas/riscv/cv-simd-cmpleu-sc-b-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmpleu-sc-b-fail.l      |   3 +
 .../gas/riscv/cv-simd-cmpleu-sc-b-fail.s      |   4 +
 .../gas/riscv/cv-simd-cmpleu-sc-b-pass.d      |  16 +
 .../gas/riscv/cv-simd-cmpleu-sc-b-pass.s      |   8 +
 .../gas/riscv/cv-simd-cmpleu-sc-h-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmpleu-sc-h-fail.l      |   3 +
 .../gas/riscv/cv-simd-cmpleu-sc-h-fail.s      |   4 +
 .../gas/riscv/cv-simd-cmpleu-sc-h-pass.d      |  16 +
 .../gas/riscv/cv-simd-cmpleu-sc-h-pass.s      |   8 +
 .../gas/riscv/cv-simd-cmpleu-sci-b-fail.d     |   3 +
 .../gas/riscv/cv-simd-cmpleu-sci-b-fail.l     |   5 +
 .../gas/riscv/cv-simd-cmpleu-sci-b-fail.s     |   7 +
 .../gas/riscv/cv-simd-cmpleu-sci-b-pass.d     |  18 +
 .../gas/riscv/cv-simd-cmpleu-sci-b-pass.s     |  11 +
 .../gas/riscv/cv-simd-cmpleu-sci-h-fail.d     |   3 +
 .../gas/riscv/cv-simd-cmpleu-sci-h-fail.l     |   5 +
 .../gas/riscv/cv-simd-cmpleu-sci-h-fail.s     |   7 +
 .../gas/riscv/cv-simd-cmpleu-sci-h-pass.d     |  18 +
 .../gas/riscv/cv-simd-cmpleu-sci-h-pass.s     |  11 +
 .../gas/riscv/cv-simd-cmplt-b-fail.d          |   3 +
 .../gas/riscv/cv-simd-cmplt-b-fail.l          |   3 +
 .../gas/riscv/cv-simd-cmplt-b-fail.s          |   4 +
 .../gas/riscv/cv-simd-cmplt-b-pass.d          |  16 +
 .../gas/riscv/cv-simd-cmplt-b-pass.s          |   8 +
 .../gas/riscv/cv-simd-cmplt-h-fail.d          |   3 +
 .../gas/riscv/cv-simd-cmplt-h-fail.l          |   3 +
 .../gas/riscv/cv-simd-cmplt-h-fail.s          |   4 +
 .../gas/riscv/cv-simd-cmplt-h-pass.d          |  16 +
 .../gas/riscv/cv-simd-cmplt-h-pass.s          |   8 +
 .../gas/riscv/cv-simd-cmplt-sc-b-fail.d       |   3 +
 .../gas/riscv/cv-simd-cmplt-sc-b-fail.l       |   3 +
 .../gas/riscv/cv-simd-cmplt-sc-b-fail.s       |   4 +
 .../gas/riscv/cv-simd-cmplt-sc-b-pass.d       |  16 +
 .../gas/riscv/cv-simd-cmplt-sc-b-pass.s       |   8 +
 .../gas/riscv/cv-simd-cmplt-sc-h-fail.d       |   3 +
 .../gas/riscv/cv-simd-cmplt-sc-h-fail.l       |   3 +
 .../gas/riscv/cv-simd-cmplt-sc-h-fail.s       |   4 +
 .../gas/riscv/cv-simd-cmplt-sc-h-pass.d       |  16 +
 .../gas/riscv/cv-simd-cmplt-sc-h-pass.s       |   8 +
 .../gas/riscv/cv-simd-cmplt-sci-b-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmplt-sci-b-fail.l      |   5 +
 .../gas/riscv/cv-simd-cmplt-sci-b-fail.s      |   7 +
 .../gas/riscv/cv-simd-cmplt-sci-b-pass.d      |  19 +
 .../gas/riscv/cv-simd-cmplt-sci-b-pass.s      |  12 +
 .../gas/riscv/cv-simd-cmplt-sci-h-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmplt-sci-h-fail.l      |   5 +
 .../gas/riscv/cv-simd-cmplt-sci-h-fail.s      |   7 +
 .../gas/riscv/cv-simd-cmplt-sci-h-pass.d      |  19 +
 .../gas/riscv/cv-simd-cmplt-sci-h-pass.s      |  12 +
 .../gas/riscv/cv-simd-cmpltu-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-cmpltu-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-cmpltu-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-cmpltu-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-cmpltu-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-cmpltu-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-cmpltu-h-fail.l         |   3 +
 .../gas/riscv/cv-simd-cmpltu-h-fail.s         |   4 +
 .../gas/riscv/cv-simd-cmpltu-h-pass.d         |  16 +
 .../gas/riscv/cv-simd-cmpltu-h-pass.s         |   8 +
 .../gas/riscv/cv-simd-cmpltu-sc-b-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmpltu-sc-b-fail.l      |   3 +
 .../gas/riscv/cv-simd-cmpltu-sc-b-fail.s      |   4 +
 .../gas/riscv/cv-simd-cmpltu-sc-b-pass.d      |  16 +
 .../gas/riscv/cv-simd-cmpltu-sc-b-pass.s      |   8 +
 .../gas/riscv/cv-simd-cmpltu-sc-h-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmpltu-sc-h-fail.l      |   3 +
 .../gas/riscv/cv-simd-cmpltu-sc-h-fail.s      |   4 +
 .../gas/riscv/cv-simd-cmpltu-sc-h-pass.d      |  16 +
 .../gas/riscv/cv-simd-cmpltu-sc-h-pass.s      |   8 +
 .../gas/riscv/cv-simd-cmpltu-sci-b-fail.d     |   3 +
 .../gas/riscv/cv-simd-cmpltu-sci-b-fail.l     |   5 +
 .../gas/riscv/cv-simd-cmpltu-sci-b-fail.s     |   7 +
 .../gas/riscv/cv-simd-cmpltu-sci-b-pass.d     |  18 +
 .../gas/riscv/cv-simd-cmpltu-sci-b-pass.s     |  11 +
 .../gas/riscv/cv-simd-cmpltu-sci-h-fail.d     |   3 +
 .../gas/riscv/cv-simd-cmpltu-sci-h-fail.l     |   5 +
 .../gas/riscv/cv-simd-cmpltu-sci-h-fail.s     |   7 +
 .../gas/riscv/cv-simd-cmpltu-sci-h-pass.d     |  18 +
 .../gas/riscv/cv-simd-cmpltu-sci-h-pass.s     |  11 +
 .../gas/riscv/cv-simd-cmpne-b-fail.d          |   3 +
 .../gas/riscv/cv-simd-cmpne-b-fail.l          |   3 +
 .../gas/riscv/cv-simd-cmpne-b-fail.s          |   4 +
 .../gas/riscv/cv-simd-cmpne-b-pass.d          |  16 +
 .../gas/riscv/cv-simd-cmpne-b-pass.s          |   8 +
 .../gas/riscv/cv-simd-cmpne-h-fail.d          |   3 +
 .../gas/riscv/cv-simd-cmpne-h-fail.l          |   3 +
 .../gas/riscv/cv-simd-cmpne-h-fail.s          |   4 +
 .../gas/riscv/cv-simd-cmpne-h-pass.d          |  16 +
 .../gas/riscv/cv-simd-cmpne-h-pass.s          |   8 +
 .../gas/riscv/cv-simd-cmpne-sc-b-fail.d       |   3 +
 .../gas/riscv/cv-simd-cmpne-sc-b-fail.l       |   3 +
 .../gas/riscv/cv-simd-cmpne-sc-b-fail.s       |   4 +
 .../gas/riscv/cv-simd-cmpne-sc-b-pass.d       |  16 +
 .../gas/riscv/cv-simd-cmpne-sc-b-pass.s       |   8 +
 .../gas/riscv/cv-simd-cmpne-sc-h-fail.d       |   3 +
 .../gas/riscv/cv-simd-cmpne-sc-h-fail.l       |   3 +
 .../gas/riscv/cv-simd-cmpne-sc-h-fail.s       |   4 +
 .../gas/riscv/cv-simd-cmpne-sc-h-pass.d       |  16 +
 .../gas/riscv/cv-simd-cmpne-sc-h-pass.s       |   8 +
 .../gas/riscv/cv-simd-cmpne-sci-b-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmpne-sci-b-fail.l      |   5 +
 .../gas/riscv/cv-simd-cmpne-sci-b-fail.s      |   7 +
 .../gas/riscv/cv-simd-cmpne-sci-b-pass.d      |  19 +
 .../gas/riscv/cv-simd-cmpne-sci-b-pass.s      |  12 +
 .../gas/riscv/cv-simd-cmpne-sci-h-fail.d      |   3 +
 .../gas/riscv/cv-simd-cmpne-sci-h-fail.l      |   5 +
 .../gas/riscv/cv-simd-cmpne-sci-h-fail.s      |   7 +
 .../gas/riscv/cv-simd-cmpne-sci-h-pass.d      |  19 +
 .../gas/riscv/cv-simd-cmpne-sci-h-pass.s      |  12 +
 .../gas/riscv/cv-simd-cplxconj-fail.d         |   3 +
 .../gas/riscv/cv-simd-cplxconj-fail.l         |   3 +
 .../gas/riscv/cv-simd-cplxconj-fail.s         |   4 +
 .../gas/riscv/cv-simd-cplxconj-pass.d         |  16 +
 .../gas/riscv/cv-simd-cplxconj-pass.s         |   8 +
 .../gas/riscv/cv-simd-cplxmul-i-div2-fail.d   |   3 +
 .../gas/riscv/cv-simd-cplxmul-i-div2-fail.l   |   3 +
 .../gas/riscv/cv-simd-cplxmul-i-div2-fail.s   |   4 +
 .../gas/riscv/cv-simd-cplxmul-i-div2-pass.d   |  16 +
 .../gas/riscv/cv-simd-cplxmul-i-div2-pass.s   |   8 +
 .../gas/riscv/cv-simd-cplxmul-i-div4-fail.d   |   3 +
 .../gas/riscv/cv-simd-cplxmul-i-div4-fail.l   |   3 +
 .../gas/riscv/cv-simd-cplxmul-i-div4-fail.s   |   4 +
 .../gas/riscv/cv-simd-cplxmul-i-div4-pass.d   |  16 +
 .../gas/riscv/cv-simd-cplxmul-i-div4-pass.s   |   8 +
 .../gas/riscv/cv-simd-cplxmul-i-div8-fail.d   |   3 +
 .../gas/riscv/cv-simd-cplxmul-i-div8-fail.l   |   3 +
 .../gas/riscv/cv-simd-cplxmul-i-div8-fail.s   |   4 +
 .../gas/riscv/cv-simd-cplxmul-i-div8-pass.d   |  16 +
 .../gas/riscv/cv-simd-cplxmul-i-div8-pass.s   |   8 +
 .../gas/riscv/cv-simd-cplxmul-i-fail.d        |   3 +
 .../gas/riscv/cv-simd-cplxmul-i-fail.l        |   3 +
 .../gas/riscv/cv-simd-cplxmul-i-fail.s        |   4 +
 .../gas/riscv/cv-simd-cplxmul-i-pass.d        |  16 +
 .../gas/riscv/cv-simd-cplxmul-i-pass.s        |   8 +
 .../gas/riscv/cv-simd-cplxmul-r-div2-fail.d   |   3 +
 .../gas/riscv/cv-simd-cplxmul-r-div2-fail.l   |   3 +
 .../gas/riscv/cv-simd-cplxmul-r-div2-fail.s   |   4 +
 .../gas/riscv/cv-simd-cplxmul-r-div2-pass.d   |  16 +
 .../gas/riscv/cv-simd-cplxmul-r-div2-pass.s   |   8 +
 .../gas/riscv/cv-simd-cplxmul-r-div4-fail.d   |   3 +
 .../gas/riscv/cv-simd-cplxmul-r-div4-fail.l   |   3 +
 .../gas/riscv/cv-simd-cplxmul-r-div4-fail.s   |   4 +
 .../gas/riscv/cv-simd-cplxmul-r-div4-pass.d   |  16 +
 .../gas/riscv/cv-simd-cplxmul-r-div4-pass.s   |   8 +
 .../gas/riscv/cv-simd-cplxmul-r-div8-fail.d   |   3 +
 .../gas/riscv/cv-simd-cplxmul-r-div8-fail.l   |   3 +
 .../gas/riscv/cv-simd-cplxmul-r-div8-fail.s   |   4 +
 .../gas/riscv/cv-simd-cplxmul-r-div8-pass.d   |  16 +
 .../gas/riscv/cv-simd-cplxmul-r-div8-pass.s   |   8 +
 .../gas/riscv/cv-simd-cplxmul-r-fail.d        |   3 +
 .../gas/riscv/cv-simd-cplxmul-r-fail.l        |   3 +
 .../gas/riscv/cv-simd-cplxmul-r-fail.s        |   4 +
 .../gas/riscv/cv-simd-cplxmul-r-pass.d        |  16 +
 .../gas/riscv/cv-simd-cplxmul-r-pass.s        |   8 +
 .../gas/riscv/cv-simd-dotsp-b-fail.d          |   3 +
 .../gas/riscv/cv-simd-dotsp-b-fail.l          |   3 +
 .../gas/riscv/cv-simd-dotsp-b-fail.s          |   4 +
 .../gas/riscv/cv-simd-dotsp-b-pass.d          |  16 +
 .../gas/riscv/cv-simd-dotsp-b-pass.s          |   8 +
 .../gas/riscv/cv-simd-dotsp-h-fail.d          |   3 +
 .../gas/riscv/cv-simd-dotsp-h-fail.l          |   3 +
 .../gas/riscv/cv-simd-dotsp-h-fail.s          |   4 +
 .../gas/riscv/cv-simd-dotsp-h-pass.d          |  16 +
 .../gas/riscv/cv-simd-dotsp-h-pass.s          |   8 +
 .../gas/riscv/cv-simd-dotsp-sc-b-fail.d       |   3 +
 .../gas/riscv/cv-simd-dotsp-sc-b-fail.l       |   3 +
 .../gas/riscv/cv-simd-dotsp-sc-b-fail.s       |   4 +
 .../gas/riscv/cv-simd-dotsp-sc-b-pass.d       |  16 +
 .../gas/riscv/cv-simd-dotsp-sc-b-pass.s       |   8 +
 .../gas/riscv/cv-simd-dotsp-sc-h-fail.d       |   3 +
 .../gas/riscv/cv-simd-dotsp-sc-h-fail.l       |   3 +
 .../gas/riscv/cv-simd-dotsp-sc-h-fail.s       |   4 +
 .../gas/riscv/cv-simd-dotsp-sc-h-pass.d       |  16 +
 .../gas/riscv/cv-simd-dotsp-sc-h-pass.s       |   8 +
 .../gas/riscv/cv-simd-dotsp-sci-b-fail.d      |   3 +
 .../gas/riscv/cv-simd-dotsp-sci-b-fail.l      |   5 +
 .../gas/riscv/cv-simd-dotsp-sci-b-fail.s      |   7 +
 .../gas/riscv/cv-simd-dotsp-sci-b-pass.d      |  19 +
 .../gas/riscv/cv-simd-dotsp-sci-b-pass.s      |  12 +
 .../gas/riscv/cv-simd-dotsp-sci-h-fail.d      |   3 +
 .../gas/riscv/cv-simd-dotsp-sci-h-fail.l      |   5 +
 .../gas/riscv/cv-simd-dotsp-sci-h-fail.s      |   7 +
 .../gas/riscv/cv-simd-dotsp-sci-h-pass.d      |  19 +
 .../gas/riscv/cv-simd-dotsp-sci-h-pass.s      |  12 +
 .../gas/riscv/cv-simd-dotup-b-fail.d          |   3 +
 .../gas/riscv/cv-simd-dotup-b-fail.l          |   3 +
 .../gas/riscv/cv-simd-dotup-b-fail.s          |   4 +
 .../gas/riscv/cv-simd-dotup-b-pass.d          |  16 +
 .../gas/riscv/cv-simd-dotup-b-pass.s          |   8 +
 .../gas/riscv/cv-simd-dotup-h-fail.d          |   3 +
 .../gas/riscv/cv-simd-dotup-h-fail.l          |   3 +
 .../gas/riscv/cv-simd-dotup-h-fail.s          |   4 +
 .../gas/riscv/cv-simd-dotup-h-pass.d          |  16 +
 .../gas/riscv/cv-simd-dotup-h-pass.s          |   8 +
 .../gas/riscv/cv-simd-dotup-sc-b-fail.d       |   3 +
 .../gas/riscv/cv-simd-dotup-sc-b-fail.l       |   3 +
 .../gas/riscv/cv-simd-dotup-sc-b-fail.s       |   4 +
 .../gas/riscv/cv-simd-dotup-sc-b-pass.d       |  16 +
 .../gas/riscv/cv-simd-dotup-sc-b-pass.s       |   8 +
 .../gas/riscv/cv-simd-dotup-sc-h-fail.d       |   3 +
 .../gas/riscv/cv-simd-dotup-sc-h-fail.l       |   3 +
 .../gas/riscv/cv-simd-dotup-sc-h-fail.s       |   4 +
 .../gas/riscv/cv-simd-dotup-sc-h-pass.d       |  16 +
 .../gas/riscv/cv-simd-dotup-sc-h-pass.s       |   8 +
 .../gas/riscv/cv-simd-dotup-sci-b-fail.d      |   3 +
 .../gas/riscv/cv-simd-dotup-sci-b-fail.l      |   5 +
 .../gas/riscv/cv-simd-dotup-sci-b-fail.s      |   7 +
 .../gas/riscv/cv-simd-dotup-sci-b-pass.d      |  18 +
 .../gas/riscv/cv-simd-dotup-sci-b-pass.s      |  11 +
 .../gas/riscv/cv-simd-dotup-sci-h-fail.d      |   3 +
 .../gas/riscv/cv-simd-dotup-sci-h-fail.l      |   5 +
 .../gas/riscv/cv-simd-dotup-sci-h-fail.s      |   7 +
 .../gas/riscv/cv-simd-dotup-sci-h-pass.d      |  18 +
 .../gas/riscv/cv-simd-dotup-sci-h-pass.s      |  11 +
 .../gas/riscv/cv-simd-dotusp-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-dotusp-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-dotusp-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-dotusp-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-dotusp-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-dotusp-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-dotusp-h-fail.l         |   3 +
 .../gas/riscv/cv-simd-dotusp-h-fail.s         |   4 +
 .../gas/riscv/cv-simd-dotusp-h-pass.d         |  16 +
 .../gas/riscv/cv-simd-dotusp-h-pass.s         |   8 +
 .../gas/riscv/cv-simd-dotusp-sc-b-fail.d      |   3 +
 .../gas/riscv/cv-simd-dotusp-sc-b-fail.l      |   3 +
 .../gas/riscv/cv-simd-dotusp-sc-b-fail.s      |   4 +
 .../gas/riscv/cv-simd-dotusp-sc-b-pass.d      |  16 +
 .../gas/riscv/cv-simd-dotusp-sc-b-pass.s      |   8 +
 .../gas/riscv/cv-simd-dotusp-sc-h-fail.d      |   3 +
 .../gas/riscv/cv-simd-dotusp-sc-h-fail.l      |   3 +
 .../gas/riscv/cv-simd-dotusp-sc-h-fail.s      |   4 +
 .../gas/riscv/cv-simd-dotusp-sc-h-pass.d      |  16 +
 .../gas/riscv/cv-simd-dotusp-sc-h-pass.s      |   8 +
 .../gas/riscv/cv-simd-dotusp-sci-b-fail.d     |   3 +
 .../gas/riscv/cv-simd-dotusp-sci-b-fail.l     |   5 +
 .../gas/riscv/cv-simd-dotusp-sci-b-fail.s     |   7 +
 .../gas/riscv/cv-simd-dotusp-sci-b-pass.d     |  19 +
 .../gas/riscv/cv-simd-dotusp-sci-b-pass.s     |  12 +
 .../gas/riscv/cv-simd-dotusp-sci-h-fail.d     |   3 +
 .../gas/riscv/cv-simd-dotusp-sci-h-fail.l     |   5 +
 .../gas/riscv/cv-simd-dotusp-sci-h-fail.s     |   7 +
 .../gas/riscv/cv-simd-dotusp-sci-h-pass.d     |  19 +
 .../gas/riscv/cv-simd-dotusp-sci-h-pass.s     |  12 +
 .../gas/riscv/cv-simd-extract-b-fail.d        |   3 +
 .../gas/riscv/cv-simd-extract-b-fail.l        |   5 +
 .../gas/riscv/cv-simd-extract-b-fail.s        |   7 +
 .../gas/riscv/cv-simd-extract-b-pass.d        |  18 +
 .../gas/riscv/cv-simd-extract-b-pass.s        |  11 +
 .../gas/riscv/cv-simd-extract-h-fail.d        |   3 +
 .../gas/riscv/cv-simd-extract-h-fail.l        |   5 +
 .../gas/riscv/cv-simd-extract-h-fail.s        |   7 +
 .../gas/riscv/cv-simd-extract-h-pass.d        |  18 +
 .../gas/riscv/cv-simd-extract-h-pass.s        |  11 +
 .../gas/riscv/cv-simd-extractu-b-fail.d       |   3 +
 .../gas/riscv/cv-simd-extractu-b-fail.l       |   5 +
 .../gas/riscv/cv-simd-extractu-b-fail.s       |   7 +
 .../gas/riscv/cv-simd-extractu-b-pass.d       |  18 +
 .../gas/riscv/cv-simd-extractu-b-pass.s       |  11 +
 .../gas/riscv/cv-simd-extractu-h-fail.d       |   3 +
 .../gas/riscv/cv-simd-extractu-h-fail.l       |   5 +
 .../gas/riscv/cv-simd-extractu-h-fail.s       |   7 +
 .../gas/riscv/cv-simd-extractu-h-pass.d       |  18 +
 .../gas/riscv/cv-simd-extractu-h-pass.s       |  11 +
 .../gas/riscv/cv-simd-insert-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-insert-b-fail.l         |   5 +
 .../gas/riscv/cv-simd-insert-b-fail.s         |   7 +
 .../gas/riscv/cv-simd-insert-b-pass.d         |  18 +
 .../gas/riscv/cv-simd-insert-b-pass.s         |  11 +
 .../gas/riscv/cv-simd-insert-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-insert-h-fail.l         |   5 +
 .../gas/riscv/cv-simd-insert-h-fail.s         |   7 +
 .../gas/riscv/cv-simd-insert-h-pass.d         |  18 +
 .../gas/riscv/cv-simd-insert-h-pass.s         |  11 +
 gas/testsuite/gas/riscv/cv-simd-march-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-march-fail.l  | 221 +++++++++
 gas/testsuite/gas/riscv/cv-simd-march-fail.s  | 221 +++++++++
 .../gas/riscv/cv-simd-march-xcvsimd.d         | 230 +++++++++
 .../gas/riscv/cv-simd-march-xcvsimd.s         | 221 +++++++++
 gas/testsuite/gas/riscv/cv-simd-max-b-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-max-b-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-max-b-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-max-b-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-max-b-pass.s  |   8 +
 gas/testsuite/gas/riscv/cv-simd-max-h-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-max-h-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-max-h-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-max-h-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-max-h-pass.s  |   8 +
 .../gas/riscv/cv-simd-max-sc-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-max-sc-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-max-sc-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-max-sc-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-max-sc-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-max-sc-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-max-sc-h-fail.l         |   3 +
 .../gas/riscv/cv-simd-max-sc-h-fail.s         |   4 +
 .../gas/riscv/cv-simd-max-sc-h-pass.d         |  16 +
 .../gas/riscv/cv-simd-max-sc-h-pass.s         |   8 +
 .../gas/riscv/cv-simd-max-sci-b-fail.d        |   3 +
 .../gas/riscv/cv-simd-max-sci-b-fail.l        |   5 +
 .../gas/riscv/cv-simd-max-sci-b-fail.s        |   7 +
 .../gas/riscv/cv-simd-max-sci-b-pass.d        |  19 +
 .../gas/riscv/cv-simd-max-sci-b-pass.s        |  12 +
 .../gas/riscv/cv-simd-max-sci-h-fail.d        |   3 +
 .../gas/riscv/cv-simd-max-sci-h-fail.l        |   5 +
 .../gas/riscv/cv-simd-max-sci-h-fail.s        |   7 +
 .../gas/riscv/cv-simd-max-sci-h-pass.d        |  19 +
 .../gas/riscv/cv-simd-max-sci-h-pass.s        |  12 +
 gas/testsuite/gas/riscv/cv-simd-maxu-b-fail.d |   3 +
 gas/testsuite/gas/riscv/cv-simd-maxu-b-fail.l |   3 +
 gas/testsuite/gas/riscv/cv-simd-maxu-b-fail.s |   4 +
 gas/testsuite/gas/riscv/cv-simd-maxu-b-pass.d |  16 +
 gas/testsuite/gas/riscv/cv-simd-maxu-b-pass.s |   8 +
 gas/testsuite/gas/riscv/cv-simd-maxu-h-fail.d |   3 +
 gas/testsuite/gas/riscv/cv-simd-maxu-h-fail.l |   3 +
 gas/testsuite/gas/riscv/cv-simd-maxu-h-fail.s |   4 +
 gas/testsuite/gas/riscv/cv-simd-maxu-h-pass.d |  16 +
 gas/testsuite/gas/riscv/cv-simd-maxu-h-pass.s |   8 +
 .../gas/riscv/cv-simd-maxu-sc-b-fail.d        |   3 +
 .../gas/riscv/cv-simd-maxu-sc-b-fail.l        |   3 +
 .../gas/riscv/cv-simd-maxu-sc-b-fail.s        |   4 +
 .../gas/riscv/cv-simd-maxu-sc-b-pass.d        |  16 +
 .../gas/riscv/cv-simd-maxu-sc-b-pass.s        |   8 +
 .../gas/riscv/cv-simd-maxu-sc-h-fail.d        |   3 +
 .../gas/riscv/cv-simd-maxu-sc-h-fail.l        |   3 +
 .../gas/riscv/cv-simd-maxu-sc-h-fail.s        |   4 +
 .../gas/riscv/cv-simd-maxu-sc-h-pass.d        |  16 +
 .../gas/riscv/cv-simd-maxu-sc-h-pass.s        |   8 +
 .../gas/riscv/cv-simd-maxu-sci-b-fail.d       |   3 +
 .../gas/riscv/cv-simd-maxu-sci-b-fail.l       |   5 +
 .../gas/riscv/cv-simd-maxu-sci-b-fail.s       |   7 +
 .../gas/riscv/cv-simd-maxu-sci-b-pass.d       |  18 +
 .../gas/riscv/cv-simd-maxu-sci-b-pass.s       |  11 +
 .../gas/riscv/cv-simd-maxu-sci-h-fail.d       |   3 +
 .../gas/riscv/cv-simd-maxu-sci-h-fail.l       |   5 +
 .../gas/riscv/cv-simd-maxu-sci-h-fail.s       |   7 +
 .../gas/riscv/cv-simd-maxu-sci-h-pass.d       |  18 +
 .../gas/riscv/cv-simd-maxu-sci-h-pass.s       |  11 +
 gas/testsuite/gas/riscv/cv-simd-min-b-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-min-b-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-min-b-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-min-b-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-min-b-pass.s  |   8 +
 gas/testsuite/gas/riscv/cv-simd-min-h-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-min-h-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-min-h-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-min-h-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-min-h-pass.s  |   8 +
 .../gas/riscv/cv-simd-min-sc-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-min-sc-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-min-sc-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-min-sc-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-min-sc-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-min-sc-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-min-sc-h-fail.l         |   3 +
 .../gas/riscv/cv-simd-min-sc-h-fail.s         |   4 +
 .../gas/riscv/cv-simd-min-sc-h-pass.d         |  16 +
 .../gas/riscv/cv-simd-min-sc-h-pass.s         |   8 +
 .../gas/riscv/cv-simd-min-sci-b-fail.d        |   3 +
 .../gas/riscv/cv-simd-min-sci-b-fail.l        |   5 +
 .../gas/riscv/cv-simd-min-sci-b-fail.s        |   7 +
 .../gas/riscv/cv-simd-min-sci-b-pass.d        |  19 +
 .../gas/riscv/cv-simd-min-sci-b-pass.s        |  12 +
 .../gas/riscv/cv-simd-min-sci-h-fail.d        |   3 +
 .../gas/riscv/cv-simd-min-sci-h-fail.l        |   5 +
 .../gas/riscv/cv-simd-min-sci-h-fail.s        |   7 +
 .../gas/riscv/cv-simd-min-sci-h-pass.d        |  19 +
 .../gas/riscv/cv-simd-min-sci-h-pass.s        |  12 +
 gas/testsuite/gas/riscv/cv-simd-minu-b-fail.d |   3 +
 gas/testsuite/gas/riscv/cv-simd-minu-b-fail.l |   3 +
 gas/testsuite/gas/riscv/cv-simd-minu-b-fail.s |   4 +
 gas/testsuite/gas/riscv/cv-simd-minu-b-pass.d |  16 +
 gas/testsuite/gas/riscv/cv-simd-minu-b-pass.s |   8 +
 gas/testsuite/gas/riscv/cv-simd-minu-h-fail.d |   3 +
 gas/testsuite/gas/riscv/cv-simd-minu-h-fail.l |   3 +
 gas/testsuite/gas/riscv/cv-simd-minu-h-fail.s |   4 +
 gas/testsuite/gas/riscv/cv-simd-minu-h-pass.d |  16 +
 gas/testsuite/gas/riscv/cv-simd-minu-h-pass.s |   8 +
 .../gas/riscv/cv-simd-minu-sc-b-fail.d        |   3 +
 .../gas/riscv/cv-simd-minu-sc-b-fail.l        |   3 +
 .../gas/riscv/cv-simd-minu-sc-b-fail.s        |   4 +
 .../gas/riscv/cv-simd-minu-sc-b-pass.d        |  16 +
 .../gas/riscv/cv-simd-minu-sc-b-pass.s        |   8 +
 .../gas/riscv/cv-simd-minu-sc-h-fail.d        |   3 +
 .../gas/riscv/cv-simd-minu-sc-h-fail.l        |   3 +
 .../gas/riscv/cv-simd-minu-sc-h-fail.s        |   4 +
 .../gas/riscv/cv-simd-minu-sc-h-pass.d        |  16 +
 .../gas/riscv/cv-simd-minu-sc-h-pass.s        |   8 +
 .../gas/riscv/cv-simd-minu-sci-b-fail.d       |   3 +
 .../gas/riscv/cv-simd-minu-sci-b-fail.l       |   5 +
 .../gas/riscv/cv-simd-minu-sci-b-fail.s       |   7 +
 .../gas/riscv/cv-simd-minu-sci-b-pass.d       |  18 +
 .../gas/riscv/cv-simd-minu-sci-b-pass.s       |  11 +
 .../gas/riscv/cv-simd-minu-sci-h-fail.d       |   3 +
 .../gas/riscv/cv-simd-minu-sci-h-fail.l       |   5 +
 .../gas/riscv/cv-simd-minu-sci-h-fail.s       |   7 +
 .../gas/riscv/cv-simd-minu-sci-h-pass.d       |  18 +
 .../gas/riscv/cv-simd-minu-sci-h-pass.s       |  11 +
 gas/testsuite/gas/riscv/cv-simd-or-b-fail.d   |   3 +
 gas/testsuite/gas/riscv/cv-simd-or-b-fail.l   |   3 +
 gas/testsuite/gas/riscv/cv-simd-or-b-fail.s   |   4 +
 gas/testsuite/gas/riscv/cv-simd-or-b-pass.d   |  16 +
 gas/testsuite/gas/riscv/cv-simd-or-b-pass.s   |   8 +
 gas/testsuite/gas/riscv/cv-simd-or-h-fail.d   |   3 +
 gas/testsuite/gas/riscv/cv-simd-or-h-fail.l   |   3 +
 gas/testsuite/gas/riscv/cv-simd-or-h-fail.s   |   4 +
 gas/testsuite/gas/riscv/cv-simd-or-h-pass.d   |  16 +
 gas/testsuite/gas/riscv/cv-simd-or-h-pass.s   |   8 +
 .../gas/riscv/cv-simd-or-sc-b-fail.d          |   3 +
 .../gas/riscv/cv-simd-or-sc-b-fail.l          |   3 +
 .../gas/riscv/cv-simd-or-sc-b-fail.s          |   4 +
 .../gas/riscv/cv-simd-or-sc-b-pass.d          |  16 +
 .../gas/riscv/cv-simd-or-sc-b-pass.s          |   8 +
 .../gas/riscv/cv-simd-or-sc-h-fail.d          |   3 +
 .../gas/riscv/cv-simd-or-sc-h-fail.l          |   3 +
 .../gas/riscv/cv-simd-or-sc-h-fail.s          |   4 +
 .../gas/riscv/cv-simd-or-sc-h-pass.d          |  16 +
 .../gas/riscv/cv-simd-or-sc-h-pass.s          |   8 +
 .../gas/riscv/cv-simd-or-sci-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-or-sci-b-fail.l         |   5 +
 .../gas/riscv/cv-simd-or-sci-b-fail.s         |   7 +
 .../gas/riscv/cv-simd-or-sci-b-pass.d         |  19 +
 .../gas/riscv/cv-simd-or-sci-b-pass.s         |  12 +
 .../gas/riscv/cv-simd-or-sci-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-or-sci-h-fail.l         |   5 +
 .../gas/riscv/cv-simd-or-sci-h-fail.s         |   7 +
 .../gas/riscv/cv-simd-or-sci-h-pass.d         |  19 +
 .../gas/riscv/cv-simd-or-sci-h-pass.s         |  12 +
 gas/testsuite/gas/riscv/cv-simd-pack-fail.d   |   3 +
 gas/testsuite/gas/riscv/cv-simd-pack-fail.l   |   3 +
 gas/testsuite/gas/riscv/cv-simd-pack-fail.s   |   4 +
 gas/testsuite/gas/riscv/cv-simd-pack-h-fail.d |   3 +
 gas/testsuite/gas/riscv/cv-simd-pack-h-fail.l |   3 +
 gas/testsuite/gas/riscv/cv-simd-pack-h-fail.s |   4 +
 gas/testsuite/gas/riscv/cv-simd-pack-h-pass.d |  16 +
 gas/testsuite/gas/riscv/cv-simd-pack-h-pass.s |   8 +
 gas/testsuite/gas/riscv/cv-simd-pack-pass.d   |  16 +
 gas/testsuite/gas/riscv/cv-simd-pack-pass.s   |   8 +
 .../gas/riscv/cv-simd-packhi-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-packhi-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-packhi-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-packhi-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-packhi-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-packlo-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-packlo-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-packlo-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-packlo-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-packlo-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-sdotsp-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-sdotsp-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-sdotsp-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-sdotsp-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-sdotsp-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-sdotsp-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-sdotsp-h-fail.l         |   3 +
 .../gas/riscv/cv-simd-sdotsp-h-fail.s         |   4 +
 .../gas/riscv/cv-simd-sdotsp-h-pass.d         |  16 +
 .../gas/riscv/cv-simd-sdotsp-h-pass.s         |   8 +
 .../gas/riscv/cv-simd-sdotsp-sc-b-fail.d      |   3 +
 .../gas/riscv/cv-simd-sdotsp-sc-b-fail.l      |   3 +
 .../gas/riscv/cv-simd-sdotsp-sc-b-fail.s      |   4 +
 .../gas/riscv/cv-simd-sdotsp-sc-b-pass.d      |  16 +
 .../gas/riscv/cv-simd-sdotsp-sc-b-pass.s      |   8 +
 .../gas/riscv/cv-simd-sdotsp-sc-h-fail.d      |   3 +
 .../gas/riscv/cv-simd-sdotsp-sc-h-fail.l      |   3 +
 .../gas/riscv/cv-simd-sdotsp-sc-h-fail.s      |   4 +
 .../gas/riscv/cv-simd-sdotsp-sc-h-pass.d      |  16 +
 .../gas/riscv/cv-simd-sdotsp-sc-h-pass.s      |   8 +
 .../gas/riscv/cv-simd-sdotsp-sci-b-fail.d     |   3 +
 .../gas/riscv/cv-simd-sdotsp-sci-b-fail.l     |   5 +
 .../gas/riscv/cv-simd-sdotsp-sci-b-fail.s     |   7 +
 .../gas/riscv/cv-simd-sdotsp-sci-b-pass.d     |  19 +
 .../gas/riscv/cv-simd-sdotsp-sci-b-pass.s     |  12 +
 .../gas/riscv/cv-simd-sdotsp-sci-h-fail.d     |   3 +
 .../gas/riscv/cv-simd-sdotsp-sci-h-fail.l     |   5 +
 .../gas/riscv/cv-simd-sdotsp-sci-h-fail.s     |   7 +
 .../gas/riscv/cv-simd-sdotsp-sci-h-pass.d     |  19 +
 .../gas/riscv/cv-simd-sdotsp-sci-h-pass.s     |  12 +
 .../gas/riscv/cv-simd-sdotup-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-sdotup-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-sdotup-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-sdotup-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-sdotup-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-sdotup-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-sdotup-h-fail.l         |   3 +
 .../gas/riscv/cv-simd-sdotup-h-fail.s         |   4 +
 .../gas/riscv/cv-simd-sdotup-h-pass.d         |  16 +
 .../gas/riscv/cv-simd-sdotup-h-pass.s         |   8 +
 .../gas/riscv/cv-simd-sdotup-sc-b-fail.d      |   3 +
 .../gas/riscv/cv-simd-sdotup-sc-b-fail.l      |   3 +
 .../gas/riscv/cv-simd-sdotup-sc-b-fail.s      |   4 +
 .../gas/riscv/cv-simd-sdotup-sc-b-pass.d      |  16 +
 .../gas/riscv/cv-simd-sdotup-sc-b-pass.s      |   8 +
 .../gas/riscv/cv-simd-sdotup-sc-h-fail.d      |   3 +
 .../gas/riscv/cv-simd-sdotup-sc-h-fail.l      |   3 +
 .../gas/riscv/cv-simd-sdotup-sc-h-fail.s      |   4 +
 .../gas/riscv/cv-simd-sdotup-sc-h-pass.d      |  16 +
 .../gas/riscv/cv-simd-sdotup-sc-h-pass.s      |   8 +
 .../gas/riscv/cv-simd-sdotup-sci-b-fail.d     |   3 +
 .../gas/riscv/cv-simd-sdotup-sci-b-fail.l     |   5 +
 .../gas/riscv/cv-simd-sdotup-sci-b-fail.s     |   7 +
 .../gas/riscv/cv-simd-sdotup-sci-b-pass.d     |  18 +
 .../gas/riscv/cv-simd-sdotup-sci-b-pass.s     |  11 +
 .../gas/riscv/cv-simd-sdotup-sci-h-fail.d     |   3 +
 .../gas/riscv/cv-simd-sdotup-sci-h-fail.l     |   5 +
 .../gas/riscv/cv-simd-sdotup-sci-h-fail.s     |   7 +
 .../gas/riscv/cv-simd-sdotup-sci-h-pass.d     |  18 +
 .../gas/riscv/cv-simd-sdotup-sci-h-pass.s     |  11 +
 .../gas/riscv/cv-simd-sdotusp-b-fail.d        |   3 +
 .../gas/riscv/cv-simd-sdotusp-b-fail.l        |   3 +
 .../gas/riscv/cv-simd-sdotusp-b-fail.s        |   4 +
 .../gas/riscv/cv-simd-sdotusp-b-pass.d        |  16 +
 .../gas/riscv/cv-simd-sdotusp-b-pass.s        |   8 +
 .../gas/riscv/cv-simd-sdotusp-h-fail.d        |   3 +
 .../gas/riscv/cv-simd-sdotusp-h-fail.l        |   3 +
 .../gas/riscv/cv-simd-sdotusp-h-fail.s        |   4 +
 .../gas/riscv/cv-simd-sdotusp-h-pass.d        |  16 +
 .../gas/riscv/cv-simd-sdotusp-h-pass.s        |   8 +
 .../gas/riscv/cv-simd-sdotusp-sc-b-fail.d     |   3 +
 .../gas/riscv/cv-simd-sdotusp-sc-b-fail.l     |   3 +
 .../gas/riscv/cv-simd-sdotusp-sc-b-fail.s     |   4 +
 .../gas/riscv/cv-simd-sdotusp-sc-b-pass.d     |  16 +
 .../gas/riscv/cv-simd-sdotusp-sc-b-pass.s     |   8 +
 .../gas/riscv/cv-simd-sdotusp-sc-h-fail.d     |   3 +
 .../gas/riscv/cv-simd-sdotusp-sc-h-fail.l     |   3 +
 .../gas/riscv/cv-simd-sdotusp-sc-h-fail.s     |   4 +
 .../gas/riscv/cv-simd-sdotusp-sc-h-pass.d     |  16 +
 .../gas/riscv/cv-simd-sdotusp-sc-h-pass.s     |   8 +
 .../gas/riscv/cv-simd-sdotusp-sci-b-fail.d    |   3 +
 .../gas/riscv/cv-simd-sdotusp-sci-b-fail.l    |   5 +
 .../gas/riscv/cv-simd-sdotusp-sci-b-fail.s    |   7 +
 .../gas/riscv/cv-simd-sdotusp-sci-b-pass.d    |  19 +
 .../gas/riscv/cv-simd-sdotusp-sci-b-pass.s    |  12 +
 .../gas/riscv/cv-simd-sdotusp-sci-h-fail.d    |   3 +
 .../gas/riscv/cv-simd-sdotusp-sci-h-fail.l    |   5 +
 .../gas/riscv/cv-simd-sdotusp-sci-h-fail.s    |   7 +
 .../gas/riscv/cv-simd-sdotusp-sci-h-pass.d    |  19 +
 .../gas/riscv/cv-simd-sdotusp-sci-h-pass.s    |  12 +
 .../gas/riscv/cv-simd-shuffle-b-fail.d        |   3 +
 .../gas/riscv/cv-simd-shuffle-b-fail.l        |   3 +
 .../gas/riscv/cv-simd-shuffle-b-fail.s        |   4 +
 .../gas/riscv/cv-simd-shuffle-b-pass.d        |  16 +
 .../gas/riscv/cv-simd-shuffle-b-pass.s        |   8 +
 .../gas/riscv/cv-simd-shuffle-h-fail.d        |   3 +
 .../gas/riscv/cv-simd-shuffle-h-fail.l        |   3 +
 .../gas/riscv/cv-simd-shuffle-h-fail.s        |   4 +
 .../gas/riscv/cv-simd-shuffle-h-pass.d        |  16 +
 .../gas/riscv/cv-simd-shuffle-h-pass.s        |   8 +
 .../gas/riscv/cv-simd-shuffle-sci-h-fail.d    |   3 +
 .../gas/riscv/cv-simd-shuffle-sci-h-fail.l    |   5 +
 .../gas/riscv/cv-simd-shuffle-sci-h-fail.s    |   7 +
 .../gas/riscv/cv-simd-shuffle-sci-h-pass.d    |  18 +
 .../gas/riscv/cv-simd-shuffle-sci-h-pass.s    |  11 +
 .../gas/riscv/cv-simd-shuffle2-b-fail.d       |   3 +
 .../gas/riscv/cv-simd-shuffle2-b-fail.l       |   3 +
 .../gas/riscv/cv-simd-shuffle2-b-fail.s       |   4 +
 .../gas/riscv/cv-simd-shuffle2-b-pass.d       |  16 +
 .../gas/riscv/cv-simd-shuffle2-b-pass.s       |   8 +
 .../gas/riscv/cv-simd-shuffle2-h-fail.d       |   3 +
 .../gas/riscv/cv-simd-shuffle2-h-fail.l       |   3 +
 .../gas/riscv/cv-simd-shuffle2-h-fail.s       |   4 +
 .../gas/riscv/cv-simd-shuffle2-h-pass.d       |  16 +
 .../gas/riscv/cv-simd-shuffle2-h-pass.s       |   8 +
 .../gas/riscv/cv-simd-shufflei0-sci-b-fail.d  |   3 +
 .../gas/riscv/cv-simd-shufflei0-sci-b-fail.l  |   5 +
 .../gas/riscv/cv-simd-shufflei0-sci-b-fail.s  |   7 +
 .../gas/riscv/cv-simd-shufflei0-sci-b-pass.d  |  18 +
 .../gas/riscv/cv-simd-shufflei0-sci-b-pass.s  |  11 +
 .../gas/riscv/cv-simd-shufflei1-sci-b-fail.d  |   3 +
 .../gas/riscv/cv-simd-shufflei1-sci-b-fail.l  |   5 +
 .../gas/riscv/cv-simd-shufflei1-sci-b-fail.s  |   7 +
 .../gas/riscv/cv-simd-shufflei1-sci-b-pass.d  |  18 +
 .../gas/riscv/cv-simd-shufflei1-sci-b-pass.s  |  11 +
 .../gas/riscv/cv-simd-shufflei2-sci-b-fail.d  |   3 +
 .../gas/riscv/cv-simd-shufflei2-sci-b-fail.l  |   5 +
 .../gas/riscv/cv-simd-shufflei2-sci-b-fail.s  |   7 +
 .../gas/riscv/cv-simd-shufflei2-sci-b-pass.d  |  18 +
 .../gas/riscv/cv-simd-shufflei2-sci-b-pass.s  |  11 +
 .../gas/riscv/cv-simd-shufflei3-sci-b-fail.d  |   3 +
 .../gas/riscv/cv-simd-shufflei3-sci-b-fail.l  |   5 +
 .../gas/riscv/cv-simd-shufflei3-sci-b-fail.s  |   7 +
 .../gas/riscv/cv-simd-shufflei3-sci-b-pass.d  |  18 +
 .../gas/riscv/cv-simd-shufflei3-sci-b-pass.s  |  11 +
 gas/testsuite/gas/riscv/cv-simd-sll-b-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-sll-b-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-sll-b-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-sll-b-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-sll-b-pass.s  |   8 +
 gas/testsuite/gas/riscv/cv-simd-sll-h-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-sll-h-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-sll-h-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-sll-h-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-sll-h-pass.s  |   8 +
 .../gas/riscv/cv-simd-sll-sc-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-sll-sc-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-sll-sc-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-sll-sc-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-sll-sc-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-sll-sc-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-sll-sc-h-fail.l         |   3 +
 .../gas/riscv/cv-simd-sll-sc-h-fail.s         |   4 +
 .../gas/riscv/cv-simd-sll-sc-h-pass.d         |  16 +
 .../gas/riscv/cv-simd-sll-sc-h-pass.s         |   8 +
 .../gas/riscv/cv-simd-sll-sci-b-fail.d        |   3 +
 .../gas/riscv/cv-simd-sll-sci-b-fail.l        |   5 +
 .../gas/riscv/cv-simd-sll-sci-b-fail.s        |   7 +
 .../gas/riscv/cv-simd-sll-sci-b-pass.d        |  18 +
 .../gas/riscv/cv-simd-sll-sci-b-pass.s        |  11 +
 .../gas/riscv/cv-simd-sll-sci-h-fail.d        |   3 +
 .../gas/riscv/cv-simd-sll-sci-h-fail.l        |   5 +
 .../gas/riscv/cv-simd-sll-sci-h-fail.s        |   7 +
 .../gas/riscv/cv-simd-sll-sci-h-pass.d        |  18 +
 .../gas/riscv/cv-simd-sll-sci-h-pass.s        |  11 +
 gas/testsuite/gas/riscv/cv-simd-sra-b-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-sra-b-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-sra-b-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-sra-b-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-sra-b-pass.s  |   8 +
 gas/testsuite/gas/riscv/cv-simd-sra-h-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-sra-h-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-sra-h-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-sra-h-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-sra-h-pass.s  |   8 +
 .../gas/riscv/cv-simd-sra-sc-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-sra-sc-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-sra-sc-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-sra-sc-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-sra-sc-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-sra-sc-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-sra-sc-h-fail.l         |   3 +
 .../gas/riscv/cv-simd-sra-sc-h-fail.s         |   4 +
 .../gas/riscv/cv-simd-sra-sc-h-pass.d         |  16 +
 .../gas/riscv/cv-simd-sra-sc-h-pass.s         |   8 +
 .../gas/riscv/cv-simd-sra-sci-b-fail.d        |   3 +
 .../gas/riscv/cv-simd-sra-sci-b-fail.l        |   5 +
 .../gas/riscv/cv-simd-sra-sci-b-fail.s        |   7 +
 .../gas/riscv/cv-simd-sra-sci-b-pass.d        |  18 +
 .../gas/riscv/cv-simd-sra-sci-b-pass.s        |  11 +
 .../gas/riscv/cv-simd-sra-sci-h-fail.d        |   3 +
 .../gas/riscv/cv-simd-sra-sci-h-fail.l        |   5 +
 .../gas/riscv/cv-simd-sra-sci-h-fail.s        |   7 +
 .../gas/riscv/cv-simd-sra-sci-h-pass.d        |  18 +
 .../gas/riscv/cv-simd-sra-sci-h-pass.s        |  11 +
 gas/testsuite/gas/riscv/cv-simd-srl-b-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-srl-b-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-srl-b-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-srl-b-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-srl-b-pass.s  |   8 +
 gas/testsuite/gas/riscv/cv-simd-srl-h-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-srl-h-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-srl-h-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-srl-h-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-srl-h-pass.s  |   8 +
 .../gas/riscv/cv-simd-srl-sc-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-srl-sc-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-srl-sc-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-srl-sc-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-srl-sc-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-srl-sc-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-srl-sc-h-fail.l         |   3 +
 .../gas/riscv/cv-simd-srl-sc-h-fail.s         |   4 +
 .../gas/riscv/cv-simd-srl-sc-h-pass.d         |  16 +
 .../gas/riscv/cv-simd-srl-sc-h-pass.s         |   8 +
 .../gas/riscv/cv-simd-srl-sci-b-fail.d        |   3 +
 .../gas/riscv/cv-simd-srl-sci-b-fail.l        |   5 +
 .../gas/riscv/cv-simd-srl-sci-b-fail.s        |   7 +
 .../gas/riscv/cv-simd-srl-sci-b-pass.d        |  18 +
 .../gas/riscv/cv-simd-srl-sci-b-pass.s        |  11 +
 .../gas/riscv/cv-simd-srl-sci-h-fail.d        |   3 +
 .../gas/riscv/cv-simd-srl-sci-h-fail.l        |   5 +
 .../gas/riscv/cv-simd-srl-sci-h-fail.s        |   7 +
 .../gas/riscv/cv-simd-srl-sci-h-pass.d        |  18 +
 .../gas/riscv/cv-simd-srl-sci-h-pass.s        |  11 +
 gas/testsuite/gas/riscv/cv-simd-sub-b-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-sub-b-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-sub-b-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-sub-b-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-sub-b-pass.s  |   8 +
 .../gas/riscv/cv-simd-sub-div2-fail.d         |   3 +
 .../gas/riscv/cv-simd-sub-div2-fail.l         |   3 +
 .../gas/riscv/cv-simd-sub-div2-fail.s         |   4 +
 .../gas/riscv/cv-simd-sub-div2-pass.d         |  16 +
 .../gas/riscv/cv-simd-sub-div2-pass.s         |   8 +
 .../gas/riscv/cv-simd-sub-div4-fail.d         |   3 +
 .../gas/riscv/cv-simd-sub-div4-fail.l         |   3 +
 .../gas/riscv/cv-simd-sub-div4-fail.s         |   4 +
 .../gas/riscv/cv-simd-sub-div4-pass.d         |  16 +
 .../gas/riscv/cv-simd-sub-div4-pass.s         |   8 +
 .../gas/riscv/cv-simd-sub-div8-fail.d         |   3 +
 .../gas/riscv/cv-simd-sub-div8-fail.l         |   3 +
 .../gas/riscv/cv-simd-sub-div8-fail.s         |   4 +
 .../gas/riscv/cv-simd-sub-div8-pass.d         |  16 +
 .../gas/riscv/cv-simd-sub-div8-pass.s         |   8 +
 gas/testsuite/gas/riscv/cv-simd-sub-h-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-sub-h-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-sub-h-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-sub-h-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-sub-h-pass.s  |   8 +
 .../gas/riscv/cv-simd-sub-sc-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-sub-sc-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-sub-sc-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-sub-sc-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-sub-sc-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-sub-sc-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-sub-sc-h-fail.l         |   3 +
 .../gas/riscv/cv-simd-sub-sc-h-fail.s         |   4 +
 .../gas/riscv/cv-simd-sub-sc-h-pass.d         |  16 +
 .../gas/riscv/cv-simd-sub-sc-h-pass.s         |   8 +
 .../gas/riscv/cv-simd-sub-sci-b-fail.d        |   3 +
 .../gas/riscv/cv-simd-sub-sci-b-fail.l        |   5 +
 .../gas/riscv/cv-simd-sub-sci-b-fail.s        |   7 +
 .../gas/riscv/cv-simd-sub-sci-b-pass.d        |  19 +
 .../gas/riscv/cv-simd-sub-sci-b-pass.s        |  12 +
 .../gas/riscv/cv-simd-sub-sci-h-fail.d        |   3 +
 .../gas/riscv/cv-simd-sub-sci-h-fail.l        |   5 +
 .../gas/riscv/cv-simd-sub-sci-h-fail.s        |   7 +
 .../gas/riscv/cv-simd-sub-sci-h-pass.d        |  19 +
 .../gas/riscv/cv-simd-sub-sci-h-pass.s        |  12 +
 .../gas/riscv/cv-simd-subrotmj-div2-fail.d    |   3 +
 .../gas/riscv/cv-simd-subrotmj-div2-fail.l    |   3 +
 .../gas/riscv/cv-simd-subrotmj-div2-fail.s    |   4 +
 .../gas/riscv/cv-simd-subrotmj-div2-pass.d    |  16 +
 .../gas/riscv/cv-simd-subrotmj-div2-pass.s    |   8 +
 .../gas/riscv/cv-simd-subrotmj-div4-fail.d    |   3 +
 .../gas/riscv/cv-simd-subrotmj-div4-fail.l    |   3 +
 .../gas/riscv/cv-simd-subrotmj-div4-fail.s    |   4 +
 .../gas/riscv/cv-simd-subrotmj-div4-pass.d    |  16 +
 .../gas/riscv/cv-simd-subrotmj-div4-pass.s    |   8 +
 .../gas/riscv/cv-simd-subrotmj-div8-fail.d    |   3 +
 .../gas/riscv/cv-simd-subrotmj-div8-fail.l    |   3 +
 .../gas/riscv/cv-simd-subrotmj-div8-fail.s    |   4 +
 .../gas/riscv/cv-simd-subrotmj-div8-pass.d    |  16 +
 .../gas/riscv/cv-simd-subrotmj-div8-pass.s    |   8 +
 .../gas/riscv/cv-simd-subrotmj-fail.d         |   3 +
 .../gas/riscv/cv-simd-subrotmj-fail.l         |   3 +
 .../gas/riscv/cv-simd-subrotmj-fail.s         |   4 +
 .../gas/riscv/cv-simd-subrotmj-pass.d         |  16 +
 .../gas/riscv/cv-simd-subrotmj-pass.s         |   8 +
 gas/testsuite/gas/riscv/cv-simd-xor-b-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-xor-b-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-xor-b-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-xor-b-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-xor-b-pass.s  |   8 +
 gas/testsuite/gas/riscv/cv-simd-xor-h-fail.d  |   3 +
 gas/testsuite/gas/riscv/cv-simd-xor-h-fail.l  |   3 +
 gas/testsuite/gas/riscv/cv-simd-xor-h-fail.s  |   4 +
 gas/testsuite/gas/riscv/cv-simd-xor-h-pass.d  |  16 +
 gas/testsuite/gas/riscv/cv-simd-xor-h-pass.s  |   8 +
 .../gas/riscv/cv-simd-xor-sc-b-fail.d         |   3 +
 .../gas/riscv/cv-simd-xor-sc-b-fail.l         |   3 +
 .../gas/riscv/cv-simd-xor-sc-b-fail.s         |   4 +
 .../gas/riscv/cv-simd-xor-sc-b-pass.d         |  16 +
 .../gas/riscv/cv-simd-xor-sc-b-pass.s         |   8 +
 .../gas/riscv/cv-simd-xor-sc-h-fail.d         |   3 +
 .../gas/riscv/cv-simd-xor-sc-h-fail.l         |   3 +
 .../gas/riscv/cv-simd-xor-sc-h-fail.s         |   4 +
 .../gas/riscv/cv-simd-xor-sc-h-pass.d         |  16 +
 .../gas/riscv/cv-simd-xor-sc-h-pass.s         |   8 +
 .../gas/riscv/cv-simd-xor-sci-b-fail.d        |   3 +
 .../gas/riscv/cv-simd-xor-sci-b-fail.l        |   5 +
 .../gas/riscv/cv-simd-xor-sci-b-fail.s        |   7 +
 .../gas/riscv/cv-simd-xor-sci-b-pass.d        |  19 +
 .../gas/riscv/cv-simd-xor-sci-b-pass.s        |  12 +
 .../gas/riscv/cv-simd-xor-sci-h-fail.d        |   3 +
 .../gas/riscv/cv-simd-xor-sci-h-fail.l        |   5 +
 .../gas/riscv/cv-simd-xor-sci-h-fail.s        |   7 +
 .../gas/riscv/cv-simd-xor-sci-h-pass.d        |  19 +
 .../gas/riscv/cv-simd-xor-sci-h-pass.s        |  12 +
 include/opcode/riscv-opc.h                    | 443 ++++++++++++++++++
 include/opcode/riscv.h                        |  14 +
 opcodes/riscv-dis.c                           |  22 +
 opcodes/riscv-opc.c                           | 222 +++++++++
 1112 files changed, 9963 insertions(+), 1 deletion(-)
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-abs-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-abs-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-abs-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-abs-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-abs-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-abs-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-abs-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-abs-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-abs-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-abs-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-div2-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-div2-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-div2-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-div2-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-div2-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-div4-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-div4-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-div4-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-div4-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-div4-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-div8-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-div8-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-div8-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-div8-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-div8-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-add-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-and-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avg-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-avgu-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpge-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmple-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmplt-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cmpne-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxconj-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxconj-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxconj-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxconj-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxconj-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div2-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div2-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div2-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div2-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div2-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div4-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div4-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div4-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div4-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div4-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div8-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div8-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div8-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div8-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div8-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-i-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div2-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div2-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div2-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div2-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div2-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div4-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div4-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div4-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div4-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div4-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div8-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div8-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div8-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div8-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div8-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-cplxmul-r-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotsp-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotup-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-dotusp-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extract-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extract-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extract-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extract-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extract-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extract-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extract-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extract-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extract-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extract-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extractu-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extractu-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extractu-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extractu-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extractu-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extractu-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extractu-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extractu-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extractu-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-extractu-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-insert-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-insert-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-insert-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-insert-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-insert-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-insert-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-insert-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-insert-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-insert-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-insert-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-march-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-march-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-march-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-march-xcvsimd.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-march-xcvsimd.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-max-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-maxu-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-min-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-minu-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-or-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-pack-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-pack-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-pack-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-pack-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-pack-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-pack-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-pack-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-pack-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-pack-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-pack-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-packhi-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-packhi-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-packhi-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-packhi-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-packhi-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-packlo-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-packlo-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-packlo-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-packlo-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-packlo-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotup-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle2-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle2-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle2-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle2-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle2-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle2-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle2-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle2-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle2-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shuffle2-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei0-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei0-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei0-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei0-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei0-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei1-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei1-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei1-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei1-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei1-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei2-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei2-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei2-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei2-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei2-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei3-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei3-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei3-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei3-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-shufflei3-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sll-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sra-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-srl-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-div2-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-div2-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-div2-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-div2-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-div2-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-div4-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-div4-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-div4-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-div4-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-div4-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-div8-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-div8-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-div8-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-div8-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-div8-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-sub-sci-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-div2-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-div2-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-div2-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-div2-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-div2-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-div4-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-div4-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-div4-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-div4-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-div4-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-div8-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-div8-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-div8-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-div8-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-div8-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-subrotmj-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sc-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sc-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sc-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sc-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sc-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sc-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sc-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sc-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sc-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sc-h-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sci-b-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sci-b-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sci-b-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sci-b-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sci-b-pass.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sci-h-fail.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sci-h-fail.l
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sci-h-fail.s
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sci-h-pass.d
 create mode 100644 gas/testsuite/gas/riscv/cv-simd-xor-sci-h-pass.s

diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c
index 9a121b47121..d0ecab02fed 100644
--- a/bfd/elfxx-riscv.c
+++ b/bfd/elfxx-riscv.c
@@ -1369,6 +1369,7 @@ static struct riscv_supported_ext riscv_supported_vendor_x_ext[] =
 {
   {"xcvmac",		ISA_SPEC_CLASS_DRAFT,	1, 0, 0 },
   {"xcvalu",		ISA_SPEC_CLASS_DRAFT,	1, 0, 0 },
+  {"xcvsimd",		ISA_SPEC_CLASS_DRAFT,	1, 0, 0 },
   {"xtheadba",		ISA_SPEC_CLASS_DRAFT,	1, 0, 0 },
   {"xtheadbb",		ISA_SPEC_CLASS_DRAFT,	1, 0, 0 },
   {"xtheadbs",		ISA_SPEC_CLASS_DRAFT,	1, 0, 0 },
@@ -2576,6 +2577,8 @@ riscv_multi_subset_supports (riscv_parse_subset_t *rps,
       return riscv_subset_supports (rps, "xcvmac");
     case INSN_CLASS_XCVALU:
       return riscv_subset_supports (rps, "xcvalu");
+    case INSN_CLASS_XCVSIMD:
+      return riscv_subset_supports (rps, "xcvsimd");
     case INSN_CLASS_XTHEADBA:
       return riscv_subset_supports (rps, "xtheadba");
     case INSN_CLASS_XTHEADBB:
@@ -2828,6 +2831,8 @@ riscv_multi_subset_supports_ext (riscv_parse_subset_t *rps,
       return "xcvmac";
     case INSN_CLASS_XCVALU:
       return "xcvalu";
+    case INSN_CLASS_XCVSIMD:
+      return "xcvsimd";
     case INSN_CLASS_XTHEADBA:
       return "xtheadba";
     case INSN_CLASS_XTHEADBB:
diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
index a4161420128..ce55f46cdc5 100644
--- a/gas/config/tc-riscv.c
+++ b/gas/config/tc-riscv.c
@@ -1373,6 +1373,24 @@ validate_riscv_insn (const struct riscv_opcode *opc, int length)
 	case '>': USE_BITS (OP_MASK_SHAMT, OP_SH_SHAMT); break;
 	case 'A': break; /* Macro operand, must be symbol.  */
 	case 'B': break; /* Macro operand, must be symbol or constant.  */
+	case 'b': /* CORE-V Specific.  */
+	  if (oparg[1] == '4')
+	    {
+	      used_bits |= ENCODE_CV_UIMM5(-1U);
+	      ++oparg; break;
+	    }
+	  else if (oparg[1] == '5')
+	    {
+	      used_bits |= ENCODE_CV_SIMD_IMM6(-1U);
+	      ++oparg; break;
+	    }
+	  else if (oparg[1] == '8')
+	    {
+	      used_bits |= ENCODE_CV_SIMD_UIMM6(-1U);
+	      if (oparg[2] == '1' || oparg[2] == '2' || oparg[2] == '3' || oparg[2] == '4') ++oparg;
+	      ++oparg; break;
+	    }
+	  break;
 	case 'c': break; /* Macro operand, must be symbol or constant.  */
 	case 'I': break; /* Macro operand, must be constant.  */
 	case 'D': /* RD, floating point.  */
@@ -3361,7 +3379,83 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
 	      *imm_reloc = BFD_RELOC_32;
 	      asarg = expr_parse_end;
 	      continue;
-
+	      /* CORE-V Specific.	 */
+	    case 'b':
+	      if (oparg[1] == '4')
+		{
+		  my_getExpression (imm_expr, asarg);
+		  check_absolute_expr (ip, imm_expr, FALSE);
+		  asarg = expr_parse_end;
+		  if (imm_expr->X_add_number<-16 || imm_expr->X_add_number>15)
+		  as_bad(_("immediate value must be 5-bit signed, %ld is out of range"),
+		  imm_expr->X_add_number);
+		  ip->insn_opcode |= ENCODE_CV_UIMM5 (imm_expr->X_add_number);
+		  ++oparg;
+		}
+	      else if (oparg[1] == '5')
+		// b5: imm6 bits signed immediate bits
+		{
+		  my_getExpression (imm_expr, asarg);
+		  check_absolute_expr (ip, imm_expr, FALSE);
+		  asarg = expr_parse_end;
+		  if (imm_expr->X_add_number<-32 || imm_expr->X_add_number>31)
+		  as_bad(_("immediate value must be 6-bit signed, %ld is out of range"),
+		  imm_expr->X_add_number);
+		  ip->insn_opcode |= ENCODE_CV_SIMD_IMM6 (imm_expr->X_add_number);
+		  ++oparg;
+		}
+	      else if (oparg[1] == '8')
+		// b8: uimm6 bits unsigned immediate bits
+		// b81: Imm6[0]
+		// b83: Imm6[2:0]
+		// b84: Imm6[3:0]
+		{
+		  my_getExpression (imm_expr, asarg);
+		  check_absolute_expr (ip, imm_expr, FALSE);
+		  asarg = expr_parse_end;
+		  if (oparg[2] == '1')
+		  {
+		    if (imm_expr->X_add_number<0 || imm_expr->X_add_number>1)
+		    as_bad(_("immediate value must be 1-bit unsigned, %ld is out of range"),
+		    imm_expr->X_add_number);
+		    ++oparg;
+		  }
+		  else if (oparg[2] == '2')
+		  {
+		    if (imm_expr->X_add_number<0 || imm_expr->X_add_number>3)
+		    as_bad(_("immediate value must be 2-bit unsigned, %ld is out of range"),
+		    imm_expr->X_add_number);
+		    ++oparg;
+		  }
+		  else if (oparg[2] == '3')
+		  {
+		    if (imm_expr->X_add_number<0 || imm_expr->X_add_number>7)
+		    as_bad(_("immediate value must be 3-bit unsigned, %ld is out of range"),
+		    imm_expr->X_add_number);
+		    ++oparg;
+		  }
+		  else if (oparg[2] == '4')
+		  {
+		    if (imm_expr->X_add_number<0 || imm_expr->X_add_number>15)
+		    as_bad(_("immediate value must be 4-bit unsigned, %ld is out of range"),
+		    imm_expr->X_add_number);
+		    ++oparg;
+		  }
+		  else
+		  {
+		    if (imm_expr->X_add_number<0 || imm_expr->X_add_number>63)
+		    as_bad(_("immediate value must be 6-bit unsigned, %ld is out of range"),
+		    imm_expr->X_add_number);
+		  }
+		  ip->insn_opcode |= ENCODE_CV_SIMD_UIMM6 (imm_expr->X_add_number);
+		  ++oparg;
+		}
+	      else
+		{
+		  my_getExpression (imm_expr, asarg);
+		  asarg = expr_parse_end;
+		}
+	      continue;
 	    case 'B':
 	      my_getExpression (imm_expr, asarg);
 	      normalize_constant_expr (imm_expr);
diff --git a/gas/doc/c-riscv.texi b/gas/doc/c-riscv.texi
index 7484a71798a..f8c6bcd5f3d 100644
--- a/gas/doc/c-riscv.texi
+++ b/gas/doc/c-riscv.texi
@@ -750,6 +750,11 @@ The Xcvalu extension provides instructions for general ALU operations.
 
 It is documented in @url{https://docs.openhwgroup.org/projects/cv32e40p-user-manual/en/latest/instruction_set_extensions.html}
 
+@item Xcvsimd
+The Xcvsimd extension provides instructions for SIMD operations.
+
+It is documented in @url{https://docs.openhwgroup.org/projects/cv32e40p-user-manual/en/latest/instruction_set_extensions.html}
+
 @item XTheadBa
 The XTheadBa extension provides instructions for address calculations.
 
diff --git a/gas/testsuite/gas/riscv/cv-simd-abs-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-abs-b-fail.d
new file mode 100644
index 00000000000..d42b44dd49f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-abs-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-abs-b-fail.s
+#error_output: cv-simd-abs-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-abs-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-abs-b-fail.l
new file mode 100644
index 00000000000..93156ef3807
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-abs-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.abs.b x32,x32'
+.*: Error: illegal operands `cv.abs.b x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-abs-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-abs-b-fail.s
new file mode 100644
index 00000000000..77ae67f0daf
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-abs-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.abs.b x32, x32
+    cv.abs.b x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-abs-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-abs-b-pass.d
new file mode 100644
index 00000000000..b50e9508bb4
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-abs-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-abs-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	7000107b          	cv.abs.b	zero,zero
+   4:	700090fb          	cv.abs.b	ra,ra
+   8:	7001117b          	cv.abs.b	sp,sp
+   c:	7004147b          	cv.abs.b	s0,s0
+  10:	700a1a7b          	cv.abs.b	s4,s4
+  14:	700f9ffb          	cv.abs.b	t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-abs-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-abs-b-pass.s
new file mode 100644
index 00000000000..9e228305641
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-abs-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.abs.b x0, x0
+    cv.abs.b x1, x1
+    cv.abs.b x2, x2
+    cv.abs.b x8, x8
+    cv.abs.b x20, x20
+    cv.abs.b x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-abs-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-abs-h-fail.d
new file mode 100644
index 00000000000..b3938c89647
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-abs-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-abs-h-fail.s
+#error_output: cv-simd-abs-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-abs-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-abs-h-fail.l
new file mode 100644
index 00000000000..74867e1b611
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-abs-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.abs.h x32,x32'
+.*: Error: illegal operands `cv.abs.h x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-abs-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-abs-h-fail.s
new file mode 100644
index 00000000000..2e711546ce6
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-abs-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.abs.h x32, x32
+    cv.abs.h x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-abs-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-abs-h-pass.d
new file mode 100644
index 00000000000..b8d09bb427f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-abs-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-abs-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	7000007b          	cv.abs.h	zero,zero
+   4:	700080fb          	cv.abs.h	ra,ra
+   8:	7001017b          	cv.abs.h	sp,sp
+   c:	7004047b          	cv.abs.h	s0,s0
+  10:	700a0a7b          	cv.abs.h	s4,s4
+  14:	700f8ffb          	cv.abs.h	t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-abs-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-abs-h-pass.s
new file mode 100644
index 00000000000..1d455699073
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-abs-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.abs.h x0, x0
+    cv.abs.h x1, x1
+    cv.abs.h x2, x2
+    cv.abs.h x8, x8
+    cv.abs.h x20, x20
+    cv.abs.h x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-add-b-fail.d
new file mode 100644
index 00000000000..1105a46a384
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-add-b-fail.s
+#error_output: cv-simd-add-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-add-b-fail.l
new file mode 100644
index 00000000000..e43a2c5536b
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.add.b x32,x32,x32'
+.*: Error: illegal operands `cv.add.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-add-b-fail.s
new file mode 100644
index 00000000000..02b5c5d148f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.add.b x32, x32, x32
+    cv.add.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-add-b-pass.d
new file mode 100644
index 00000000000..371e0fb6af6
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-add-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	0000107b          	cv.add.b	zero,zero,zero
+   4:	001090fb          	cv.add.b	ra,ra,ra
+   8:	0021117b          	cv.add.b	sp,sp,sp
+   c:	0084147b          	cv.add.b	s0,s0,s0
+  10:	014a1a7b          	cv.add.b	s4,s4,s4
+  14:	01ff9ffb          	cv.add.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-add-b-pass.s
new file mode 100644
index 00000000000..77da5630aa8
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.add.b x0, x0, x0
+    cv.add.b x1, x1, x1
+    cv.add.b x2, x2, x2
+    cv.add.b x8, x8, x8
+    cv.add.b x20, x20, x20
+    cv.add.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-div2-fail.d b/gas/testsuite/gas/riscv/cv-simd-add-div2-fail.d
new file mode 100644
index 00000000000..0430f5445d0
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-div2-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-add-div2-fail.s
+#error_output: cv-simd-add-div2-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-div2-fail.l b/gas/testsuite/gas/riscv/cv-simd-add-div2-fail.l
new file mode 100644
index 00000000000..aaf581ef21d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-div2-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.add.div2 x32,x32,x32'
+.*: Error: illegal operands `cv.add.div2 x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-div2-fail.s b/gas/testsuite/gas/riscv/cv-simd-add-div2-fail.s
new file mode 100644
index 00000000000..ef37cafa2ae
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-div2-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.add.div2 x32, x32, x32
+    cv.add.div2 x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-div2-pass.d b/gas/testsuite/gas/riscv/cv-simd-add-div2-pass.d
new file mode 100644
index 00000000000..ec7c9478a2e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-div2-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-add-div2-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	6c00207b          	cv.add.div2	zero,zero,zero
+   4:	6c10a0fb          	cv.add.div2	ra,ra,ra
+   8:	6c21217b          	cv.add.div2	sp,sp,sp
+   c:	6c84247b          	cv.add.div2	s0,s0,s0
+  10:	6d4a2a7b          	cv.add.div2	s4,s4,s4
+  14:	6dffaffb          	cv.add.div2	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-div2-pass.s b/gas/testsuite/gas/riscv/cv-simd-add-div2-pass.s
new file mode 100644
index 00000000000..02bb555d39d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-div2-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.add.div2 x0, x0, x0
+    cv.add.div2 x1, x1, x1
+    cv.add.div2 x2, x2, x2
+    cv.add.div2 x8, x8, x8
+    cv.add.div2 x20, x20, x20
+    cv.add.div2 x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-div4-fail.d b/gas/testsuite/gas/riscv/cv-simd-add-div4-fail.d
new file mode 100644
index 00000000000..950e50f68f0
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-div4-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-add-div4-fail.s
+#error_output: cv-simd-add-div4-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-div4-fail.l b/gas/testsuite/gas/riscv/cv-simd-add-div4-fail.l
new file mode 100644
index 00000000000..4f91c5031c8
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-div4-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.add.div4 x32,x32,x32'
+.*: Error: illegal operands `cv.add.div4 x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-div4-fail.s b/gas/testsuite/gas/riscv/cv-simd-add-div4-fail.s
new file mode 100644
index 00000000000..94be2df60a5
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-div4-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.add.div4 x32, x32, x32
+    cv.add.div4 x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-div4-pass.d b/gas/testsuite/gas/riscv/cv-simd-add-div4-pass.d
new file mode 100644
index 00000000000..b2ab67c3e46
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-div4-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-add-div4-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	6c00407b          	cv.add.div4	zero,zero,zero
+   4:	6c10c0fb          	cv.add.div4	ra,ra,ra
+   8:	6c21417b          	cv.add.div4	sp,sp,sp
+   c:	6c84447b          	cv.add.div4	s0,s0,s0
+  10:	6d4a4a7b          	cv.add.div4	s4,s4,s4
+  14:	6dffcffb          	cv.add.div4	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-div4-pass.s b/gas/testsuite/gas/riscv/cv-simd-add-div4-pass.s
new file mode 100644
index 00000000000..9f3afd2cbc0
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-div4-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.add.div4 x0, x0, x0
+    cv.add.div4 x1, x1, x1
+    cv.add.div4 x2, x2, x2
+    cv.add.div4 x8, x8, x8
+    cv.add.div4 x20, x20, x20
+    cv.add.div4 x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-div8-fail.d b/gas/testsuite/gas/riscv/cv-simd-add-div8-fail.d
new file mode 100644
index 00000000000..dc238baf678
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-div8-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-add-div8-fail.s
+#error_output: cv-simd-add-div8-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-div8-fail.l b/gas/testsuite/gas/riscv/cv-simd-add-div8-fail.l
new file mode 100644
index 00000000000..b5628ada078
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-div8-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.add.div8 x32,x32,x32'
+.*: Error: illegal operands `cv.add.div8 x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-div8-fail.s b/gas/testsuite/gas/riscv/cv-simd-add-div8-fail.s
new file mode 100644
index 00000000000..d4c2c4afbfe
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-div8-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.add.div8 x32, x32, x32
+    cv.add.div8 x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-div8-pass.d b/gas/testsuite/gas/riscv/cv-simd-add-div8-pass.d
new file mode 100644
index 00000000000..df2687734a6
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-div8-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-add-div8-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	6c00607b          	cv.add.div8	zero,zero,zero
+   4:	6c10e0fb          	cv.add.div8	ra,ra,ra
+   8:	6c21617b          	cv.add.div8	sp,sp,sp
+   c:	6c84647b          	cv.add.div8	s0,s0,s0
+  10:	6d4a6a7b          	cv.add.div8	s4,s4,s4
+  14:	6dffeffb          	cv.add.div8	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-div8-pass.s b/gas/testsuite/gas/riscv/cv-simd-add-div8-pass.s
new file mode 100644
index 00000000000..a0e33130eec
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-div8-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.add.div8 x0, x0, x0
+    cv.add.div8 x1, x1, x1
+    cv.add.div8 x2, x2, x2
+    cv.add.div8 x8, x8, x8
+    cv.add.div8 x20, x20, x20
+    cv.add.div8 x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-add-h-fail.d
new file mode 100644
index 00000000000..2955fadd135
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-add-h-fail.s
+#error_output: cv-simd-add-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-add-h-fail.l
new file mode 100644
index 00000000000..a82b28674ac
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.add.h x32,x32,x32'
+.*: Error: illegal operands `cv.add.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-add-h-fail.s
new file mode 100644
index 00000000000..2c9ffa090ca
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.add.h x32, x32, x32
+    cv.add.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-add-h-pass.d
new file mode 100644
index 00000000000..1a8515046a6
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-h-pass.d
@@ -0,0 +1,15 @@
+#as: -march=rv32i_xcvsimd
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	0000007b          	cv.add.h	zero,zero,zero
+   4:	001080fb          	cv.add.h	ra,ra,ra
+   8:	0021017b          	cv.add.h	sp,sp,sp
+   c:	0084047b          	cv.add.h	s0,s0,s0
+  10:	014a0a7b          	cv.add.h	s4,s4,s4
+  14:	01ff8ffb          	cv.add.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-add-h-pass.s
new file mode 100644
index 00000000000..46e91513932
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.add.h x0, x0, x0
+    cv.add.h x1, x1, x1
+    cv.add.h x2, x2, x2
+    cv.add.h x8, x8, x8
+    cv.add.h x20, x20, x20
+    cv.add.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-sc-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-add-sc-b-fail.d
new file mode 100644
index 00000000000..5203f945385
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-sc-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-add-sc-b-fail.s
+#error_output: cv-simd-add-sc-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-sc-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-add-sc-b-fail.l
new file mode 100644
index 00000000000..20b1f4fa1dd
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-sc-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.add.sc.b x32,x32,x32'
+.*: Error: illegal operands `cv.add.sc.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-sc-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-add-sc-b-fail.s
new file mode 100644
index 00000000000..9121fd4fefb
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-sc-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.add.sc.b x32, x32, x32
+    cv.add.sc.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-sc-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-add-sc-b-pass.d
new file mode 100644
index 00000000000..70c4d4d7a5f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-sc-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-add-sc-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	0000507b          	cv.add.sc.b	zero,zero,zero
+   4:	0010d0fb          	cv.add.sc.b	ra,ra,ra
+   8:	0021517b          	cv.add.sc.b	sp,sp,sp
+   c:	0084547b          	cv.add.sc.b	s0,s0,s0
+  10:	014a5a7b          	cv.add.sc.b	s4,s4,s4
+  14:	01ffdffb          	cv.add.sc.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-sc-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-add-sc-b-pass.s
new file mode 100644
index 00000000000..e041df004cc
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-sc-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.add.sc.b x0, x0, x0
+    cv.add.sc.b x1, x1, x1
+    cv.add.sc.b x2, x2, x2
+    cv.add.sc.b x8, x8, x8
+    cv.add.sc.b x20, x20, x20
+    cv.add.sc.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-sc-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-add-sc-h-fail.d
new file mode 100644
index 00000000000..da90549036e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-sc-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-add-sc-h-fail.s
+#error_output: cv-simd-add-sc-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-sc-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-add-sc-h-fail.l
new file mode 100644
index 00000000000..eaba711f44a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-sc-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.add.sc.h x32,x32,x32'
+.*: Error: illegal operands `cv.add.sc.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-sc-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-add-sc-h-fail.s
new file mode 100644
index 00000000000..032270dc4e6
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-sc-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.add.sc.h x32, x32, x32
+    cv.add.sc.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-sc-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-add-sc-h-pass.d
new file mode 100644
index 00000000000..6292cead61a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-sc-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-add-sc-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	0000407b          	cv.add.sc.h	zero,zero,zero
+   4:	0010c0fb          	cv.add.sc.h	ra,ra,ra
+   8:	0021417b          	cv.add.sc.h	sp,sp,sp
+   c:	0084447b          	cv.add.sc.h	s0,s0,s0
+  10:	014a4a7b          	cv.add.sc.h	s4,s4,s4
+  14:	01ffcffb          	cv.add.sc.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-sc-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-add-sc-h-pass.s
new file mode 100644
index 00000000000..27626c6af1a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-sc-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.add.sc.h x0, x0, x0
+    cv.add.sc.h x1, x1, x1
+    cv.add.sc.h x2, x2, x2
+    cv.add.sc.h x8, x8, x8
+    cv.add.sc.h x20, x20, x20
+    cv.add.sc.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-sci-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-add-sci-b-fail.d
new file mode 100644
index 00000000000..4a887bf0b03
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-sci-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-add-sci-b-fail.s
+#error_output: cv-simd-add-sci-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-sci-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-add-sci-b-fail.l
new file mode 100644
index 00000000000..c3f90cce759
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-sci-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.add.sci.b x32,x32,20'
+.*: Error: illegal operands `cv.add.sci.b x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-sci-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-add-sci-b-fail.s
new file mode 100644
index 00000000000..d3e2e2aae57
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-sci-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.add.sci.b x32, x32, 20
+    cv.add.sci.b x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.add.sci.b x6, x7, -33
+    cv.add.sci.b x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-sci-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-add-sci-b-pass.d
new file mode 100644
index 00000000000..a619e5c2a7e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-sci-b-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-add-sci-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	00a0707b          	cv.add.sci.b	zero,zero,20
+   4:	00a0f0fb          	cv.add.sci.b	ra,ra,20
+   8:	00a1717b          	cv.add.sci.b	sp,sp,20
+   c:	00a4747b          	cv.add.sci.b	s0,s0,20
+  10:	00aa7a7b          	cv.add.sci.b	s4,s4,20
+  14:	00affffb          	cv.add.sci.b	t6,t6,20
+  18:	0103f37b          	cv.add.sci.b	t1,t2,-32
+  1c:	0003f37b          	cv.add.sci.b	t1,t2,0
+  20:	02f3f37b          	cv.add.sci.b	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-sci-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-add-sci-b-pass.s
new file mode 100644
index 00000000000..3502bc197be
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-sci-b-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.add.sci.b x0, x0, 20
+    cv.add.sci.b x1, x1, 20
+    cv.add.sci.b x2, x2, 20
+    cv.add.sci.b x8, x8, 20
+    cv.add.sci.b x20, x20, 20
+    cv.add.sci.b x31, x31, 20
+    #Immediate Values Test
+    cv.add.sci.b x6, x7, -32
+    cv.add.sci.b x6, x7, 0
+    cv.add.sci.b x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-sci-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-add-sci-h-fail.d
new file mode 100644
index 00000000000..0903b08b12a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-sci-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-add-sci-h-fail.s
+#error_output: cv-simd-add-sci-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-sci-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-add-sci-h-fail.l
new file mode 100644
index 00000000000..2f0656f83a3
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-sci-h-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.add.sci.h x32,x32,20'
+.*: Error: illegal operands `cv.add.sci.h x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-sci-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-add-sci-h-fail.s
new file mode 100644
index 00000000000..538864a7f48
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-sci-h-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.add.sci.h x32, x32, 20
+    cv.add.sci.h x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.add.sci.h x6, x7, -33
+    cv.add.sci.h x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-sci-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-add-sci-h-pass.d
new file mode 100644
index 00000000000..8feb432283e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-sci-h-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-add-sci-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	00a0607b          	cv.add.sci.h	zero,zero,20
+   4:	00a0e0fb          	cv.add.sci.h	ra,ra,20
+   8:	00a1617b          	cv.add.sci.h	sp,sp,20
+   c:	00a4647b          	cv.add.sci.h	s0,s0,20
+  10:	00aa6a7b          	cv.add.sci.h	s4,s4,20
+  14:	00afeffb          	cv.add.sci.h	t6,t6,20
+  18:	0103e37b          	cv.add.sci.h	t1,t2,-32
+  1c:	0003e37b          	cv.add.sci.h	t1,t2,0
+  20:	02f3e37b          	cv.add.sci.h	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-add-sci-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-add-sci-h-pass.s
new file mode 100644
index 00000000000..6ce7055482b
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-add-sci-h-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.add.sci.h x0, x0, 20
+    cv.add.sci.h x1, x1, 20
+    cv.add.sci.h x2, x2, 20
+    cv.add.sci.h x8, x8, 20
+    cv.add.sci.h x20, x20, 20
+    cv.add.sci.h x31, x31, 20
+    #Immediate Values Test
+    cv.add.sci.h x6, x7, -32
+    cv.add.sci.h x6, x7, 0
+    cv.add.sci.h x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-and-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-and-b-fail.d
new file mode 100644
index 00000000000..90dcc73303d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-and-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-and-b-fail.s
+#error_output: cv-simd-and-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-and-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-and-b-fail.l
new file mode 100644
index 00000000000..18102aad53f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-and-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.and.b x32,x32,x32'
+.*: Error: illegal operands `cv.and.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-and-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-and-b-fail.s
new file mode 100644
index 00000000000..576d7feecf6
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-and-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.and.b x32, x32, x32
+    cv.and.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-and-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-and-b-pass.d
new file mode 100644
index 00000000000..3c04c58671c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-and-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-and-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	6800107b          	cv.and.b	zero,zero,zero
+   4:	681090fb          	cv.and.b	ra,ra,ra
+   8:	6821117b          	cv.and.b	sp,sp,sp
+   c:	6884147b          	cv.and.b	s0,s0,s0
+  10:	694a1a7b          	cv.and.b	s4,s4,s4
+  14:	69ff9ffb          	cv.and.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-and-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-and-b-pass.s
new file mode 100644
index 00000000000..84bd68710fa
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-and-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.and.b x0, x0, x0
+    cv.and.b x1, x1, x1
+    cv.and.b x2, x2, x2
+    cv.and.b x8, x8, x8
+    cv.and.b x20, x20, x20
+    cv.and.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-and-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-and-h-fail.d
new file mode 100644
index 00000000000..8afc79a69b7
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-and-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-and-h-fail.s
+#error_output: cv-simd-and-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-and-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-and-h-fail.l
new file mode 100644
index 00000000000..a12d6a349db
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-and-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.and.h x32,x32,x32'
+.*: Error: illegal operands `cv.and.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-and-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-and-h-fail.s
new file mode 100644
index 00000000000..f60f7afbcaf
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-and-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.and.h x32, x32, x32
+    cv.and.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-and-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-and-h-pass.d
new file mode 100644
index 00000000000..543d22a8acc
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-and-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-and-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	6800007b          	cv.and.h	zero,zero,zero
+   4:	681080fb          	cv.and.h	ra,ra,ra
+   8:	6821017b          	cv.and.h	sp,sp,sp
+   c:	6884047b          	cv.and.h	s0,s0,s0
+  10:	694a0a7b          	cv.and.h	s4,s4,s4
+  14:	69ff8ffb          	cv.and.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-and-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-and-h-pass.s
new file mode 100644
index 00000000000..776fce71297
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-and-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.and.h x0, x0, x0
+    cv.and.h x1, x1, x1
+    cv.and.h x2, x2, x2
+    cv.and.h x8, x8, x8
+    cv.and.h x20, x20, x20
+    cv.and.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-and-sc-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-and-sc-b-fail.d
new file mode 100644
index 00000000000..6144978cf6c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-and-sc-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-and-sc-b-fail.s
+#error_output: cv-simd-and-sc-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-and-sc-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-and-sc-b-fail.l
new file mode 100644
index 00000000000..cf9dd0e2935
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-and-sc-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.and.sc.b x32,x32,x32'
+.*: Error: illegal operands `cv.and.sc.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-and-sc-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-and-sc-b-fail.s
new file mode 100644
index 00000000000..77e76d667b6
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-and-sc-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.and.sc.b x32, x32, x32
+    cv.and.sc.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-and-sc-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-and-sc-b-pass.d
new file mode 100644
index 00000000000..303b08034ef
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-and-sc-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-and-sc-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	6800507b          	cv.and.sc.b	zero,zero,zero
+   4:	6810d0fb          	cv.and.sc.b	ra,ra,ra
+   8:	6821517b          	cv.and.sc.b	sp,sp,sp
+   c:	6884547b          	cv.and.sc.b	s0,s0,s0
+  10:	694a5a7b          	cv.and.sc.b	s4,s4,s4
+  14:	69ffdffb          	cv.and.sc.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-and-sc-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-and-sc-b-pass.s
new file mode 100644
index 00000000000..d6b116a7bca
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-and-sc-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.and.sc.b x0, x0, x0
+    cv.and.sc.b x1, x1, x1
+    cv.and.sc.b x2, x2, x2
+    cv.and.sc.b x8, x8, x8
+    cv.and.sc.b x20, x20, x20
+    cv.and.sc.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-and-sc-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-and-sc-h-fail.d
new file mode 100644
index 00000000000..c8bb0149d9a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-and-sc-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-and-sc-h-fail.s
+#error_output: cv-simd-and-sc-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-and-sc-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-and-sc-h-fail.l
new file mode 100644
index 00000000000..cc0e3329db6
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-and-sc-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.and.sc.h x32,x32,x32'
+.*: Error: illegal operands `cv.and.sc.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-and-sc-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-and-sc-h-fail.s
new file mode 100644
index 00000000000..cfdc62d6512
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-and-sc-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.and.sc.h x32, x32, x32
+    cv.and.sc.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-and-sc-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-and-sc-h-pass.d
new file mode 100644
index 00000000000..66eee81b941
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-and-sc-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-and-sc-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	6800407b          	cv.and.sc.h	zero,zero,zero
+   4:	6810c0fb          	cv.and.sc.h	ra,ra,ra
+   8:	6821417b          	cv.and.sc.h	sp,sp,sp
+   c:	6884447b          	cv.and.sc.h	s0,s0,s0
+  10:	694a4a7b          	cv.and.sc.h	s4,s4,s4
+  14:	69ffcffb          	cv.and.sc.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-and-sc-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-and-sc-h-pass.s
new file mode 100644
index 00000000000..a3ae1596c13
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-and-sc-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.and.sc.h x0, x0, x0
+    cv.and.sc.h x1, x1, x1
+    cv.and.sc.h x2, x2, x2
+    cv.and.sc.h x8, x8, x8
+    cv.and.sc.h x20, x20, x20
+    cv.and.sc.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-and-sci-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-and-sci-b-fail.d
new file mode 100644
index 00000000000..f208bb9600e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-and-sci-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-and-sci-b-fail.s
+#error_output: cv-simd-and-sci-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-and-sci-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-and-sci-b-fail.l
new file mode 100644
index 00000000000..a259452d78d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-and-sci-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.and.sci.b x32,x32,20'
+.*: Error: illegal operands `cv.and.sci.b x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-and-sci-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-and-sci-b-fail.s
new file mode 100644
index 00000000000..842278fb71f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-and-sci-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.and.sci.b x32, x32, 20
+    cv.and.sci.b x33, x33, 20
+    #Boundary Ibmediate Values Test
+    cv.and.sci.b x6, x7, -33
+    cv.and.sci.b x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-and-sci-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-and-sci-b-pass.d
new file mode 100644
index 00000000000..df234b3bfe1
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-and-sci-b-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-and-sci-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	68a0707b          	cv.and.sci.b	zero,zero,20
+   4:	68a0f0fb          	cv.and.sci.b	ra,ra,20
+   8:	68a1717b          	cv.and.sci.b	sp,sp,20
+   c:	68a4747b          	cv.and.sci.b	s0,s0,20
+  10:	68aa7a7b          	cv.and.sci.b	s4,s4,20
+  14:	68affffb          	cv.and.sci.b	t6,t6,20
+  18:	6903f37b          	cv.and.sci.b	t1,t2,-32
+  1c:	6803f37b          	cv.and.sci.b	t1,t2,0
+  20:	6af3f37b          	cv.and.sci.b	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-and-sci-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-and-sci-b-pass.s
new file mode 100644
index 00000000000..33aa654af1f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-and-sci-b-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.and.sci.b x0, x0, 20
+    cv.and.sci.b x1, x1, 20
+    cv.and.sci.b x2, x2, 20
+    cv.and.sci.b x8, x8, 20
+    cv.and.sci.b x20, x20, 20
+    cv.and.sci.b x31, x31, 20
+    #Immediate Values Test
+    cv.and.sci.b x6, x7, -32
+    cv.and.sci.b x6, x7, 0
+    cv.and.sci.b x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-and-sci-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-and-sci-h-fail.d
new file mode 100644
index 00000000000..3f17a36db14
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-and-sci-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-and-sci-h-fail.s
+#error_output: cv-simd-and-sci-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-and-sci-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-and-sci-h-fail.l
new file mode 100644
index 00000000000..3564a7fce86
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-and-sci-h-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.and.sci.h x32,x32,20'
+.*: Error: illegal operands `cv.and.sci.h x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-and-sci-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-and-sci-h-fail.s
new file mode 100644
index 00000000000..b510be5346a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-and-sci-h-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.and.sci.h x32, x32, 20
+    cv.and.sci.h x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.and.sci.h x6, x7, -33
+    cv.and.sci.h x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-and-sci-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-and-sci-h-pass.d
new file mode 100644
index 00000000000..e9f68737c8e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-and-sci-h-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-and-sci-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	68a0607b          	cv.and.sci.h	zero,zero,20
+   4:	68a0e0fb          	cv.and.sci.h	ra,ra,20
+   8:	68a1617b          	cv.and.sci.h	sp,sp,20
+   c:	68a4647b          	cv.and.sci.h	s0,s0,20
+  10:	68aa6a7b          	cv.and.sci.h	s4,s4,20
+  14:	68afeffb          	cv.and.sci.h	t6,t6,20
+  18:	6903e37b          	cv.and.sci.h	t1,t2,-32
+  1c:	6803e37b          	cv.and.sci.h	t1,t2,0
+  20:	6af3e37b          	cv.and.sci.h	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-and-sci-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-and-sci-h-pass.s
new file mode 100644
index 00000000000..5c06d000996
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-and-sci-h-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.and.sci.h x0, x0, 20
+    cv.and.sci.h x1, x1, 20
+    cv.and.sci.h x2, x2, 20
+    cv.and.sci.h x8, x8, 20
+    cv.and.sci.h x20, x20, 20
+    cv.and.sci.h x31, x31, 20
+    #Immediate Values Test
+    cv.and.sci.h x6, x7, -32
+    cv.and.sci.h x6, x7, 0
+    cv.and.sci.h x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-avg-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-avg-b-fail.d
new file mode 100644
index 00000000000..8e1fedc4f4b
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avg-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-avg-b-fail.s
+#error_output: cv-simd-avg-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-avg-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-avg-b-fail.l
new file mode 100644
index 00000000000..7b693315d5e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avg-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.avg.b x32,x32,x32'
+.*: Error: illegal operands `cv.avg.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-avg-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-avg-b-fail.s
new file mode 100644
index 00000000000..0488df691e2
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avg-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.avg.b x32, x32, x32
+    cv.avg.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-avg-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-avg-b-pass.d
new file mode 100644
index 00000000000..2f6b39e151a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avg-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-avg-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	1000107b          	cv.avg.b	zero,zero,zero
+   4:	101090fb          	cv.avg.b	ra,ra,ra
+   8:	1021117b          	cv.avg.b	sp,sp,sp
+   c:	1084147b          	cv.avg.b	s0,s0,s0
+  10:	114a1a7b          	cv.avg.b	s4,s4,s4
+  14:	11ff9ffb          	cv.avg.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-avg-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-avg-b-pass.s
new file mode 100644
index 00000000000..bc299360a7d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avg-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.avg.b x0, x0, x0
+    cv.avg.b x1, x1, x1
+    cv.avg.b x2, x2, x2
+    cv.avg.b x8, x8, x8
+    cv.avg.b x20, x20, x20
+    cv.avg.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-avg-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-avg-h-fail.d
new file mode 100644
index 00000000000..027118446fb
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avg-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-avg-h-fail.s
+#error_output: cv-simd-avg-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-avg-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-avg-h-fail.l
new file mode 100644
index 00000000000..387e31e1f04
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avg-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.avg.h x32,x32,x32'
+.*: Error: illegal operands `cv.avg.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-avg-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-avg-h-fail.s
new file mode 100644
index 00000000000..bd8f8bb5f40
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avg-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.avg.h x32, x32, x32
+    cv.avg.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-avg-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-avg-h-pass.d
new file mode 100644
index 00000000000..044b292c450
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avg-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-avg-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	1000007b          	cv.avg.h	zero,zero,zero
+   4:	101080fb          	cv.avg.h	ra,ra,ra
+   8:	1021017b          	cv.avg.h	sp,sp,sp
+   c:	1084047b          	cv.avg.h	s0,s0,s0
+  10:	114a0a7b          	cv.avg.h	s4,s4,s4
+  14:	11ff8ffb          	cv.avg.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-avg-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-avg-h-pass.s
new file mode 100644
index 00000000000..e2558e322d8
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avg-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.avg.h x0, x0, x0
+    cv.avg.h x1, x1, x1
+    cv.avg.h x2, x2, x2
+    cv.avg.h x8, x8, x8
+    cv.avg.h x20, x20, x20
+    cv.avg.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-avg-sc-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-avg-sc-b-fail.d
new file mode 100644
index 00000000000..a452363f4d7
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avg-sc-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-avg-sc-b-fail.s
+#error_output: cv-simd-avg-sc-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-avg-sc-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-avg-sc-b-fail.l
new file mode 100644
index 00000000000..dd22457c92d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avg-sc-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.avg.sc.b x32,x32,x32'
+.*: Error: illegal operands `cv.avg.sc.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-avg-sc-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-avg-sc-b-fail.s
new file mode 100644
index 00000000000..b40ce82d61b
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avg-sc-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.avg.sc.b x32, x32, x32
+    cv.avg.sc.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-avg-sc-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-avg-sc-b-pass.d
new file mode 100644
index 00000000000..24c9362fec0
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avg-sc-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-avg-sc-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	1000507b          	cv.avg.sc.b	zero,zero,zero
+   4:	1010d0fb          	cv.avg.sc.b	ra,ra,ra
+   8:	1021517b          	cv.avg.sc.b	sp,sp,sp
+   c:	1084547b          	cv.avg.sc.b	s0,s0,s0
+  10:	114a5a7b          	cv.avg.sc.b	s4,s4,s4
+  14:	11ffdffb          	cv.avg.sc.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-avg-sc-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-avg-sc-b-pass.s
new file mode 100644
index 00000000000..a78c7d56c1e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avg-sc-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.avg.sc.b x0, x0, x0
+    cv.avg.sc.b x1, x1, x1
+    cv.avg.sc.b x2, x2, x2
+    cv.avg.sc.b x8, x8, x8
+    cv.avg.sc.b x20, x20, x20
+    cv.avg.sc.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-avg-sc-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-avg-sc-h-fail.d
new file mode 100644
index 00000000000..5e48b003006
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avg-sc-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-avg-sc-h-fail.s
+#error_output: cv-simd-avg-sc-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-avg-sc-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-avg-sc-h-fail.l
new file mode 100644
index 00000000000..3df6422a9d4
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avg-sc-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.avg.sc.h x32,x32,x32'
+.*: Error: illegal operands `cv.avg.sc.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-avg-sc-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-avg-sc-h-fail.s
new file mode 100644
index 00000000000..fa3a4d2e700
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avg-sc-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.avg.sc.h x32, x32, x32
+    cv.avg.sc.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-avg-sc-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-avg-sc-h-pass.d
new file mode 100644
index 00000000000..f4cd1bcfe73
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avg-sc-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-avg-sc-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	1000407b          	cv.avg.sc.h	zero,zero,zero
+   4:	1010c0fb          	cv.avg.sc.h	ra,ra,ra
+   8:	1021417b          	cv.avg.sc.h	sp,sp,sp
+   c:	1084447b          	cv.avg.sc.h	s0,s0,s0
+  10:	114a4a7b          	cv.avg.sc.h	s4,s4,s4
+  14:	11ffcffb          	cv.avg.sc.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-avg-sc-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-avg-sc-h-pass.s
new file mode 100644
index 00000000000..28bf8536fa3
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avg-sc-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.avg.sc.h x0, x0, x0
+    cv.avg.sc.h x1, x1, x1
+    cv.avg.sc.h x2, x2, x2
+    cv.avg.sc.h x8, x8, x8
+    cv.avg.sc.h x20, x20, x20
+    cv.avg.sc.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-avg-sci-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-avg-sci-b-fail.d
new file mode 100644
index 00000000000..166015a1156
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avg-sci-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-avg-sci-b-fail.s
+#error_output: cv-simd-avg-sci-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-avg-sci-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-avg-sci-b-fail.l
new file mode 100644
index 00000000000..1d66f52499b
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avg-sci-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.avg.sci.b x32,x32,20'
+.*: Error: illegal operands `cv.avg.sci.b x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-avg-sci-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-avg-sci-b-fail.s
new file mode 100644
index 00000000000..dd0eb100064
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avg-sci-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.avg.sci.b x32, x32, 20
+    cv.avg.sci.b x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.avg.sci.b x6, x7, -33
+    cv.avg.sci.b x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-avg-sci-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-avg-sci-b-pass.d
new file mode 100644
index 00000000000..023b3201d14
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avg-sci-b-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-avg-sci-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	10a0707b          	cv.avg.sci.b	zero,zero,20
+   4:	10a0f0fb          	cv.avg.sci.b	ra,ra,20
+   8:	10a1717b          	cv.avg.sci.b	sp,sp,20
+   c:	10a4747b          	cv.avg.sci.b	s0,s0,20
+  10:	10aa7a7b          	cv.avg.sci.b	s4,s4,20
+  14:	10affffb          	cv.avg.sci.b	t6,t6,20
+  18:	1103f37b          	cv.avg.sci.b	t1,t2,-32
+  1c:	1003f37b          	cv.avg.sci.b	t1,t2,0
+  20:	12f3f37b          	cv.avg.sci.b	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-avg-sci-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-avg-sci-b-pass.s
new file mode 100644
index 00000000000..cef5caba22c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avg-sci-b-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.avg.sci.b x0, x0, 20
+    cv.avg.sci.b x1, x1, 20
+    cv.avg.sci.b x2, x2, 20
+    cv.avg.sci.b x8, x8, 20
+    cv.avg.sci.b x20, x20, 20
+    cv.avg.sci.b x31, x31, 20
+    #Immediate Values Test
+    cv.avg.sci.b x6, x7, -32
+    cv.avg.sci.b x6, x7, 0
+    cv.avg.sci.b x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-avg-sci-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-avg-sci-h-fail.d
new file mode 100644
index 00000000000..d995769504d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avg-sci-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-avg-sci-h-fail.s
+#error_output: cv-simd-avg-sci-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-avg-sci-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-avg-sci-h-fail.l
new file mode 100644
index 00000000000..a5bc7a5cdb9
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avg-sci-h-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.avg.sci.h x32,x32,20'
+.*: Error: illegal operands `cv.avg.sci.h x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-avg-sci-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-avg-sci-h-fail.s
new file mode 100644
index 00000000000..41144e20d77
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avg-sci-h-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.avg.sci.h x32, x32, 20
+    cv.avg.sci.h x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.avg.sci.h x6, x7, -33
+    cv.avg.sci.h x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-avg-sci-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-avg-sci-h-pass.d
new file mode 100644
index 00000000000..43e6089b2b9
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avg-sci-h-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-avg-sci-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	10a0607b          	cv.avg.sci.h	zero,zero,20
+   4:	10a0e0fb          	cv.avg.sci.h	ra,ra,20
+   8:	10a1617b          	cv.avg.sci.h	sp,sp,20
+   c:	10a4647b          	cv.avg.sci.h	s0,s0,20
+  10:	10aa6a7b          	cv.avg.sci.h	s4,s4,20
+  14:	10afeffb          	cv.avg.sci.h	t6,t6,20
+  18:	1103e37b          	cv.avg.sci.h	t1,t2,-32
+  1c:	1003e37b          	cv.avg.sci.h	t1,t2,0
+  20:	12f3e37b          	cv.avg.sci.h	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-avg-sci-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-avg-sci-h-pass.s
new file mode 100644
index 00000000000..a489cbbdaac
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avg-sci-h-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.avg.sci.h x0, x0, 20
+    cv.avg.sci.h x1, x1, 20
+    cv.avg.sci.h x2, x2, 20
+    cv.avg.sci.h x8, x8, 20
+    cv.avg.sci.h x20, x20, 20
+    cv.avg.sci.h x31, x31, 20
+    #Immediate Values Test
+    cv.avg.sci.h x6, x7, -32
+    cv.avg.sci.h x6, x7, 0
+    cv.avg.sci.h x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-avgu-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-avgu-b-fail.d
new file mode 100644
index 00000000000..af1ddbe83ca
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avgu-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-avgu-b-fail.s
+#error_output: cv-simd-avgu-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-avgu-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-avgu-b-fail.l
new file mode 100644
index 00000000000..945d5b11ad7
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avgu-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.avgu.b x32,x32,x32'
+.*: Error: illegal operands `cv.avgu.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-avgu-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-avgu-b-fail.s
new file mode 100644
index 00000000000..8401e7c18bc
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avgu-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.avgu.b x32, x32, x32
+    cv.avgu.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-avgu-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-avgu-b-pass.d
new file mode 100644
index 00000000000..f7e548a3ca2
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avgu-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-avgu-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	1800107b          	cv.avgu.b	zero,zero,zero
+   4:	181090fb          	cv.avgu.b	ra,ra,ra
+   8:	1821117b          	cv.avgu.b	sp,sp,sp
+   c:	1884147b          	cv.avgu.b	s0,s0,s0
+  10:	194a1a7b          	cv.avgu.b	s4,s4,s4
+  14:	19ff9ffb          	cv.avgu.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-avgu-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-avgu-b-pass.s
new file mode 100644
index 00000000000..afea2b753de
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avgu-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.avgu.b x0, x0, x0
+    cv.avgu.b x1, x1, x1
+    cv.avgu.b x2, x2, x2
+    cv.avgu.b x8, x8, x8
+    cv.avgu.b x20, x20, x20
+    cv.avgu.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-avgu-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-avgu-h-fail.d
new file mode 100644
index 00000000000..caabe1b56af
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avgu-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-avgu-h-fail.s
+#error_output: cv-simd-avgu-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-avgu-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-avgu-h-fail.l
new file mode 100644
index 00000000000..7c8f1554713
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avgu-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.avgu.h x32,x32,x32'
+.*: Error: illegal operands `cv.avgu.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-avgu-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-avgu-h-fail.s
new file mode 100644
index 00000000000..0d68904a760
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avgu-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.avgu.h x32, x32, x32
+    cv.avgu.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-avgu-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-avgu-h-pass.d
new file mode 100644
index 00000000000..21d3e815119
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avgu-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-avgu-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	1800007b          	cv.avgu.h	zero,zero,zero
+   4:	181080fb          	cv.avgu.h	ra,ra,ra
+   8:	1821017b          	cv.avgu.h	sp,sp,sp
+   c:	1884047b          	cv.avgu.h	s0,s0,s0
+  10:	194a0a7b          	cv.avgu.h	s4,s4,s4
+  14:	19ff8ffb          	cv.avgu.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-avgu-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-avgu-h-pass.s
new file mode 100644
index 00000000000..2bf5b99bcb4
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avgu-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.avgu.h x0, x0, x0
+    cv.avgu.h x1, x1, x1
+    cv.avgu.h x2, x2, x2
+    cv.avgu.h x8, x8, x8
+    cv.avgu.h x20, x20, x20
+    cv.avgu.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-avgu-sc-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-avgu-sc-b-fail.d
new file mode 100644
index 00000000000..9528a0ef082
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avgu-sc-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-avgu-sc-b-fail.s
+#error_output: cv-simd-avgu-sc-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-avgu-sc-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-avgu-sc-b-fail.l
new file mode 100644
index 00000000000..477e1703fd2
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avgu-sc-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.avgu.sc.b x32,x32,x32'
+.*: Error: illegal operands `cv.avgu.sc.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-avgu-sc-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-avgu-sc-b-fail.s
new file mode 100644
index 00000000000..6d6f0814829
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avgu-sc-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.avgu.sc.b x32, x32, x32
+    cv.avgu.sc.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-avgu-sc-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-avgu-sc-b-pass.d
new file mode 100644
index 00000000000..4b7819c5705
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avgu-sc-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-avgu-sc-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	1800507b          	cv.avgu.sc.b	zero,zero,zero
+   4:	1810d0fb          	cv.avgu.sc.b	ra,ra,ra
+   8:	1821517b          	cv.avgu.sc.b	sp,sp,sp
+   c:	1884547b          	cv.avgu.sc.b	s0,s0,s0
+  10:	194a5a7b          	cv.avgu.sc.b	s4,s4,s4
+  14:	19ffdffb          	cv.avgu.sc.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-avgu-sc-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-avgu-sc-b-pass.s
new file mode 100644
index 00000000000..a22ee098d2b
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avgu-sc-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.avgu.sc.b x0, x0, x0
+    cv.avgu.sc.b x1, x1, x1
+    cv.avgu.sc.b x2, x2, x2
+    cv.avgu.sc.b x8, x8, x8
+    cv.avgu.sc.b x20, x20, x20
+    cv.avgu.sc.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-avgu-sc-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-avgu-sc-h-fail.d
new file mode 100644
index 00000000000..63ae30b9c62
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avgu-sc-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-avgu-sc-h-fail.s
+#error_output: cv-simd-avgu-sc-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-avgu-sc-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-avgu-sc-h-fail.l
new file mode 100644
index 00000000000..b4192d02b66
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avgu-sc-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.avgu.sc.h x32,x32,x32'
+.*: Error: illegal operands `cv.avgu.sc.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-avgu-sc-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-avgu-sc-h-fail.s
new file mode 100644
index 00000000000..f42e01e2e2c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avgu-sc-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.avgu.sc.h x32, x32, x32
+    cv.avgu.sc.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-avgu-sc-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-avgu-sc-h-pass.d
new file mode 100644
index 00000000000..c084dbd8aed
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avgu-sc-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-avgu-sc-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	1800407b          	cv.avgu.sc.h	zero,zero,zero
+   4:	1810c0fb          	cv.avgu.sc.h	ra,ra,ra
+   8:	1821417b          	cv.avgu.sc.h	sp,sp,sp
+   c:	1884447b          	cv.avgu.sc.h	s0,s0,s0
+  10:	194a4a7b          	cv.avgu.sc.h	s4,s4,s4
+  14:	19ffcffb          	cv.avgu.sc.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-avgu-sc-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-avgu-sc-h-pass.s
new file mode 100644
index 00000000000..ea6ad17c56e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avgu-sc-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.avgu.sc.h x0, x0, x0
+    cv.avgu.sc.h x1, x1, x1
+    cv.avgu.sc.h x2, x2, x2
+    cv.avgu.sc.h x8, x8, x8
+    cv.avgu.sc.h x20, x20, x20
+    cv.avgu.sc.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-avgu-sci-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-avgu-sci-b-fail.d
new file mode 100644
index 00000000000..071985022d0
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avgu-sci-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-avgu-sci-b-fail.s
+#error_output: cv-simd-avgu-sci-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-avgu-sci-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-avgu-sci-b-fail.l
new file mode 100644
index 00000000000..241f8ae1341
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avgu-sci-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.avgu.sci.b x32,x32,20'
+.*: Error: illegal operands `cv.avgu.sci.b x33,x33,20'
+.*: Error: immediate value must be 6-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 6-bit unsigned, 64 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-avgu-sci-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-avgu-sci-b-fail.s
new file mode 100644
index 00000000000..ddf40939b69
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avgu-sci-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.avgu.sci.b x32, x32, 20
+    cv.avgu.sci.b x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.avgu.sci.b x6, x7, -1
+    cv.avgu.sci.b x6, x7, 64
diff --git a/gas/testsuite/gas/riscv/cv-simd-avgu-sci-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-avgu-sci-b-pass.d
new file mode 100644
index 00000000000..0668fe1848d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avgu-sci-b-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-avgu-sci-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	18a0707b          	cv.avgu.sci.b	zero,zero,20
+   4:	18a0f0fb          	cv.avgu.sci.b	ra,ra,20
+   8:	18a1717b          	cv.avgu.sci.b	sp,sp,20
+   c:	18a4747b          	cv.avgu.sci.b	s0,s0,20
+  10:	18aa7a7b          	cv.avgu.sci.b	s4,s4,20
+  14:	18affffb          	cv.avgu.sci.b	t6,t6,20
+  18:	1803f37b          	cv.avgu.sci.b	t1,t2,0
+  1c:	1bf3f37b          	cv.avgu.sci.b	t1,t2,63
diff --git a/gas/testsuite/gas/riscv/cv-simd-avgu-sci-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-avgu-sci-b-pass.s
new file mode 100644
index 00000000000..dc8073603cc
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avgu-sci-b-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.avgu.sci.b x0, x0, 20
+    cv.avgu.sci.b x1, x1, 20
+    cv.avgu.sci.b x2, x2, 20
+    cv.avgu.sci.b x8, x8, 20
+    cv.avgu.sci.b x20, x20, 20
+    cv.avgu.sci.b x31, x31, 20
+    #Immediate Values Test
+    cv.avgu.sci.b x6, x7, 0
+    cv.avgu.sci.b x6, x7, 63
diff --git a/gas/testsuite/gas/riscv/cv-simd-avgu-sci-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-avgu-sci-h-fail.d
new file mode 100644
index 00000000000..398239769ff
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avgu-sci-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-avgu-sci-h-fail.s
+#error_output: cv-simd-avgu-sci-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-avgu-sci-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-avgu-sci-h-fail.l
new file mode 100644
index 00000000000..ec018bdd1ef
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avgu-sci-h-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.avgu.sci.h x32,x32,20'
+.*: Error: illegal operands `cv.avgu.sci.h x33,x33,20'
+.*: Error: immediate value must be 6-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 6-bit unsigned, 64 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-avgu-sci-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-avgu-sci-h-fail.s
new file mode 100644
index 00000000000..cae50e2320d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avgu-sci-h-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.avgu.sci.h x32, x32, 20
+    cv.avgu.sci.h x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.avgu.sci.h x6, x7, -1
+    cv.avgu.sci.h x6, x7, 64
diff --git a/gas/testsuite/gas/riscv/cv-simd-avgu-sci-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-avgu-sci-h-pass.d
new file mode 100644
index 00000000000..1f9902d0dc4
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avgu-sci-h-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-avgu-sci-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	18a0607b          	cv.avgu.sci.h	zero,zero,20
+   4:	18a0e0fb          	cv.avgu.sci.h	ra,ra,20
+   8:	18a1617b          	cv.avgu.sci.h	sp,sp,20
+   c:	18a4647b          	cv.avgu.sci.h	s0,s0,20
+  10:	18aa6a7b          	cv.avgu.sci.h	s4,s4,20
+  14:	18afeffb          	cv.avgu.sci.h	t6,t6,20
+  18:	1803e37b          	cv.avgu.sci.h	t1,t2,0
+  1c:	1bf3e37b          	cv.avgu.sci.h	t1,t2,63
diff --git a/gas/testsuite/gas/riscv/cv-simd-avgu-sci-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-avgu-sci-h-pass.s
new file mode 100644
index 00000000000..f638387199b
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-avgu-sci-h-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.avgu.sci.h x0, x0, 20
+    cv.avgu.sci.h x1, x1, 20
+    cv.avgu.sci.h x2, x2, 20
+    cv.avgu.sci.h x8, x8, 20
+    cv.avgu.sci.h x20, x20, 20
+    cv.avgu.sci.h x31, x31, 20
+    #Immediate Values Test
+    cv.avgu.sci.h x6, x7, 0
+    cv.avgu.sci.h x6, x7, 63
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpeq-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpeq-b-fail.d
new file mode 100644
index 00000000000..2a3318d5dfe
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpeq-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpeq-b-fail.s
+#error_output: cv-simd-cmpeq-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpeq-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpeq-b-fail.l
new file mode 100644
index 00000000000..4aac9f46da2
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpeq-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpeq.b x32,x32,x32'
+.*: Error: illegal operands `cv.cmpeq.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpeq-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpeq-b-fail.s
new file mode 100644
index 00000000000..a0f528ad7c1
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpeq-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmpeq.b x32, x32, x32
+    cv.cmpeq.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpeq-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpeq-b-pass.d
new file mode 100644
index 00000000000..bd2b2f9b0a6
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpeq-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpeq-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	0400107b          	cv.cmpeq.b	zero,zero,zero
+   4:	041090fb          	cv.cmpeq.b	ra,ra,ra
+   8:	0421117b          	cv.cmpeq.b	sp,sp,sp
+   c:	0484147b          	cv.cmpeq.b	s0,s0,s0
+  10:	054a1a7b          	cv.cmpeq.b	s4,s4,s4
+  14:	05ff9ffb          	cv.cmpeq.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpeq-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpeq-b-pass.s
new file mode 100644
index 00000000000..a4875125eeb
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpeq-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmpeq.b x0, x0, x0
+    cv.cmpeq.b x1, x1, x1
+    cv.cmpeq.b x2, x2, x2
+    cv.cmpeq.b x8, x8, x8
+    cv.cmpeq.b x20, x20, x20
+    cv.cmpeq.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpeq-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpeq-h-fail.d
new file mode 100644
index 00000000000..b258f49d2ec
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpeq-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpeq-h-fail.s
+#error_output: cv-simd-cmpeq-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpeq-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpeq-h-fail.l
new file mode 100644
index 00000000000..a4a2d73299c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpeq-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpeq.h x32,x32,x32'
+.*: Error: illegal operands `cv.cmpeq.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpeq-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpeq-h-fail.s
new file mode 100644
index 00000000000..72008f735cd
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpeq-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmpeq.h x32, x32, x32
+    cv.cmpeq.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpeq-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpeq-h-pass.d
new file mode 100644
index 00000000000..f5e54008311
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpeq-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpeq-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	0400007b          	cv.cmpeq.h	zero,zero,zero
+   4:	041080fb          	cv.cmpeq.h	ra,ra,ra
+   8:	0421017b          	cv.cmpeq.h	sp,sp,sp
+   c:	0484047b          	cv.cmpeq.h	s0,s0,s0
+  10:	054a0a7b          	cv.cmpeq.h	s4,s4,s4
+  14:	05ff8ffb          	cv.cmpeq.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpeq-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpeq-h-pass.s
new file mode 100644
index 00000000000..5bef92b2dbe
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpeq-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmpeq.h x0, x0, x0
+    cv.cmpeq.h x1, x1, x1
+    cv.cmpeq.h x2, x2, x2
+    cv.cmpeq.h x8, x8, x8
+    cv.cmpeq.h x20, x20, x20
+    cv.cmpeq.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-b-fail.d
new file mode 100644
index 00000000000..e2fe218cdd4
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpeq-sc-b-fail.s
+#error_output: cv-simd-cmpeq-sc-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-b-fail.l
new file mode 100644
index 00000000000..43c0f88c42b
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpeq.sc.b x32,x32,x32'
+.*: Error: illegal operands `cv.cmpeq.sc.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-b-fail.s
new file mode 100644
index 00000000000..46edcf3b987
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmpeq.sc.b x32, x32, x32
+    cv.cmpeq.sc.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-b-pass.d
new file mode 100644
index 00000000000..81d4ee3964c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpeq-sc-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	0400507b          	cv.cmpeq.sc.b	zero,zero,zero
+   4:	0410d0fb          	cv.cmpeq.sc.b	ra,ra,ra
+   8:	0421517b          	cv.cmpeq.sc.b	sp,sp,sp
+   c:	0484547b          	cv.cmpeq.sc.b	s0,s0,s0
+  10:	054a5a7b          	cv.cmpeq.sc.b	s4,s4,s4
+  14:	05ffdffb          	cv.cmpeq.sc.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-b-pass.s
new file mode 100644
index 00000000000..73808e038fa
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmpeq.sc.b x0, x0, x0
+    cv.cmpeq.sc.b x1, x1, x1
+    cv.cmpeq.sc.b x2, x2, x2
+    cv.cmpeq.sc.b x8, x8, x8
+    cv.cmpeq.sc.b x20, x20, x20
+    cv.cmpeq.sc.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-h-fail.d
new file mode 100644
index 00000000000..cc28bad796d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpeq-sc-h-fail.s
+#error_output: cv-simd-cmpeq-sc-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-h-fail.l
new file mode 100644
index 00000000000..13275a99112
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpeq.sc.h x32,x32,x32'
+.*: Error: illegal operands `cv.cmpeq.sc.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-h-fail.s
new file mode 100644
index 00000000000..24e211af754
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmpeq.sc.h x32, x32, x32
+    cv.cmpeq.sc.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-h-pass.d
new file mode 100644
index 00000000000..11a5774ebc9
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpeq-sc-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	0400407b          	cv.cmpeq.sc.h	zero,zero,zero
+   4:	0410c0fb          	cv.cmpeq.sc.h	ra,ra,ra
+   8:	0421417b          	cv.cmpeq.sc.h	sp,sp,sp
+   c:	0484447b          	cv.cmpeq.sc.h	s0,s0,s0
+  10:	054a4a7b          	cv.cmpeq.sc.h	s4,s4,s4
+  14:	05ffcffb          	cv.cmpeq.sc.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-h-pass.s
new file mode 100644
index 00000000000..fc8f7686695
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sc-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmpeq.sc.h x0, x0, x0
+    cv.cmpeq.sc.h x1, x1, x1
+    cv.cmpeq.sc.h x2, x2, x2
+    cv.cmpeq.sc.h x8, x8, x8
+    cv.cmpeq.sc.h x20, x20, x20
+    cv.cmpeq.sc.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-b-fail.d
new file mode 100644
index 00000000000..ee63eaa3a7c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpeq-sci-b-fail.s
+#error_output: cv-simd-cmpeq-sci-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-b-fail.l
new file mode 100644
index 00000000000..0d488f66ce1
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpeq.sci.b x32,x32,20'
+.*: Error: illegal operands `cv.cmpeq.sci.b x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-b-fail.s
new file mode 100644
index 00000000000..6cf4cb09612
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.cmpeq.sci.b x32, x32, 20
+    cv.cmpeq.sci.b x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.cmpeq.sci.b x6, x7, -33
+    cv.cmpeq.sci.b x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-b-pass.d
new file mode 100644
index 00000000000..c0dead860d9
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-b-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpeq-sci-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	04a0707b          	cv.cmpeq.sci.b	zero,zero,20
+   4:	04a0f0fb          	cv.cmpeq.sci.b	ra,ra,20
+   8:	04a1717b          	cv.cmpeq.sci.b	sp,sp,20
+   c:	04a4747b          	cv.cmpeq.sci.b	s0,s0,20
+  10:	04aa7a7b          	cv.cmpeq.sci.b	s4,s4,20
+  14:	04affffb          	cv.cmpeq.sci.b	t6,t6,20
+  18:	0503f37b          	cv.cmpeq.sci.b	t1,t2,-32
+  1c:	0403f37b          	cv.cmpeq.sci.b	t1,t2,0
+  20:	06f3f37b          	cv.cmpeq.sci.b	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-b-pass.s
new file mode 100644
index 00000000000..aa079a6780b
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-b-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.cmpeq.sci.b x0, x0, 20
+    cv.cmpeq.sci.b x1, x1, 20
+    cv.cmpeq.sci.b x2, x2, 20
+    cv.cmpeq.sci.b x8, x8, 20
+    cv.cmpeq.sci.b x20, x20, 20
+    cv.cmpeq.sci.b x31, x31, 20
+    #Immediate Values Test
+    cv.cmpeq.sci.b x6, x7, -32
+    cv.cmpeq.sci.b x6, x7, 0
+    cv.cmpeq.sci.b x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-h-fail.d
new file mode 100644
index 00000000000..878e99672f7
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpeq-sci-h-fail.s
+#error_output: cv-simd-cmpeq-sci-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-h-fail.l
new file mode 100644
index 00000000000..77a6cd56bf1
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-h-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpeq.sci.h x32,x32,20'
+.*: Error: illegal operands `cv.cmpeq.sci.h x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-h-fail.s
new file mode 100644
index 00000000000..677b67ce279
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-h-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.cmpeq.sci.h x32, x32, 20
+    cv.cmpeq.sci.h x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.cmpeq.sci.h x6, x7, -33
+    cv.cmpeq.sci.h x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-h-pass.d
new file mode 100644
index 00000000000..302d2f80cc3
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-h-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpeq-sci-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	04a0607b          	cv.cmpeq.sci.h	zero,zero,20
+   4:	04a0e0fb          	cv.cmpeq.sci.h	ra,ra,20
+   8:	04a1617b          	cv.cmpeq.sci.h	sp,sp,20
+   c:	04a4647b          	cv.cmpeq.sci.h	s0,s0,20
+  10:	04aa6a7b          	cv.cmpeq.sci.h	s4,s4,20
+  14:	04afeffb          	cv.cmpeq.sci.h	t6,t6,20
+  18:	0503e37b          	cv.cmpeq.sci.h	t1,t2,-32
+  1c:	0403e37b          	cv.cmpeq.sci.h	t1,t2,0
+  20:	06f3e37b          	cv.cmpeq.sci.h	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-h-pass.s
new file mode 100644
index 00000000000..c5f00ca2070
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpeq-sci-h-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.cmpeq.sci.h x0, x0, 20
+    cv.cmpeq.sci.h x1, x1, 20
+    cv.cmpeq.sci.h x2, x2, 20
+    cv.cmpeq.sci.h x8, x8, 20
+    cv.cmpeq.sci.h x20, x20, 20
+    cv.cmpeq.sci.h x31, x31, 20
+    #Immediate Values Test
+    cv.cmpeq.sci.h x6, x7, -32
+    cv.cmpeq.sci.h x6, x7, 0
+    cv.cmpeq.sci.h x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpge-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpge-b-fail.d
new file mode 100644
index 00000000000..644f83b5692
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpge-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpge-b-fail.s
+#error_output: cv-simd-cmpge-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpge-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpge-b-fail.l
new file mode 100644
index 00000000000..a08e74fe104
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpge-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpge.b x32,x32,x32'
+.*: Error: illegal operands `cv.cmpge.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpge-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpge-b-fail.s
new file mode 100644
index 00000000000..a97fd9c1ac1
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpge-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmpge.b x32, x32, x32
+    cv.cmpge.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpge-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpge-b-pass.d
new file mode 100644
index 00000000000..029840c70d5
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpge-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpge-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	1c00107b          	cv.cmpge.b	zero,zero,zero
+   4:	1c1090fb          	cv.cmpge.b	ra,ra,ra
+   8:	1c21117b          	cv.cmpge.b	sp,sp,sp
+   c:	1c84147b          	cv.cmpge.b	s0,s0,s0
+  10:	1d4a1a7b          	cv.cmpge.b	s4,s4,s4
+  14:	1dff9ffb          	cv.cmpge.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpge-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpge-b-pass.s
new file mode 100644
index 00000000000..30f6576b832
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpge-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmpge.b x0, x0, x0
+    cv.cmpge.b x1, x1, x1
+    cv.cmpge.b x2, x2, x2
+    cv.cmpge.b x8, x8, x8
+    cv.cmpge.b x20, x20, x20
+    cv.cmpge.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpge-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpge-h-fail.d
new file mode 100644
index 00000000000..7b7d123aa74
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpge-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpge-h-fail.s
+#error_output: cv-simd-cmpge-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpge-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpge-h-fail.l
new file mode 100644
index 00000000000..a9f0019ae95
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpge-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpge.h x32,x32,x32'
+.*: Error: illegal operands `cv.cmpge.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpge-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpge-h-fail.s
new file mode 100644
index 00000000000..04bd6e61f55
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpge-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmpge.h x32, x32, x32
+    cv.cmpge.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpge-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpge-h-pass.d
new file mode 100644
index 00000000000..4ba0160c254
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpge-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpge-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	1c00007b          	cv.cmpge.h	zero,zero,zero
+   4:	1c1080fb          	cv.cmpge.h	ra,ra,ra
+   8:	1c21017b          	cv.cmpge.h	sp,sp,sp
+   c:	1c84047b          	cv.cmpge.h	s0,s0,s0
+  10:	1d4a0a7b          	cv.cmpge.h	s4,s4,s4
+  14:	1dff8ffb          	cv.cmpge.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpge-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpge-h-pass.s
new file mode 100644
index 00000000000..83c9cbb7c5f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpge-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmpge.h x0, x0, x0
+    cv.cmpge.h x1, x1, x1
+    cv.cmpge.h x2, x2, x2
+    cv.cmpge.h x8, x8, x8
+    cv.cmpge.h x20, x20, x20
+    cv.cmpge.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpge-sc-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpge-sc-b-fail.d
new file mode 100644
index 00000000000..996cd49af15
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpge-sc-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpge-sc-b-fail.s
+#error_output: cv-simd-cmpge-sc-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpge-sc-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpge-sc-b-fail.l
new file mode 100644
index 00000000000..2d73720e32c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpge-sc-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpge.sc.b x32,x32,x32'
+.*: Error: illegal operands `cv.cmpge.sc.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpge-sc-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpge-sc-b-fail.s
new file mode 100644
index 00000000000..2282d53a132
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpge-sc-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmpge.sc.b x32, x32, x32
+    cv.cmpge.sc.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpge-sc-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpge-sc-b-pass.d
new file mode 100644
index 00000000000..f00943ab68e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpge-sc-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpge-sc-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	1c00507b          	cv.cmpge.sc.b	zero,zero,zero
+   4:	1c10d0fb          	cv.cmpge.sc.b	ra,ra,ra
+   8:	1c21517b          	cv.cmpge.sc.b	sp,sp,sp
+   c:	1c84547b          	cv.cmpge.sc.b	s0,s0,s0
+  10:	1d4a5a7b          	cv.cmpge.sc.b	s4,s4,s4
+  14:	1dffdffb          	cv.cmpge.sc.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpge-sc-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpge-sc-b-pass.s
new file mode 100644
index 00000000000..d70ff7dbadb
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpge-sc-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmpge.sc.b x0, x0, x0
+    cv.cmpge.sc.b x1, x1, x1
+    cv.cmpge.sc.b x2, x2, x2
+    cv.cmpge.sc.b x8, x8, x8
+    cv.cmpge.sc.b x20, x20, x20
+    cv.cmpge.sc.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpge-sc-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpge-sc-h-fail.d
new file mode 100644
index 00000000000..e74c232991a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpge-sc-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpge-sc-h-fail.s
+#error_output: cv-simd-cmpge-sc-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpge-sc-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpge-sc-h-fail.l
new file mode 100644
index 00000000000..97c55e41c90
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpge-sc-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpge.sc.h x32,x32,x32'
+.*: Error: illegal operands `cv.cmpge.sc.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpge-sc-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpge-sc-h-fail.s
new file mode 100644
index 00000000000..a753d789c82
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpge-sc-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmpge.sc.h x32, x32, x32
+    cv.cmpge.sc.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpge-sc-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpge-sc-h-pass.d
new file mode 100644
index 00000000000..d44d2258a42
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpge-sc-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpge-sc-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	1c00407b          	cv.cmpge.sc.h	zero,zero,zero
+   4:	1c10c0fb          	cv.cmpge.sc.h	ra,ra,ra
+   8:	1c21417b          	cv.cmpge.sc.h	sp,sp,sp
+   c:	1c84447b          	cv.cmpge.sc.h	s0,s0,s0
+  10:	1d4a4a7b          	cv.cmpge.sc.h	s4,s4,s4
+  14:	1dffcffb          	cv.cmpge.sc.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpge-sc-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpge-sc-h-pass.s
new file mode 100644
index 00000000000..7013748e8ec
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpge-sc-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmpge.sc.h x0, x0, x0
+    cv.cmpge.sc.h x1, x1, x1
+    cv.cmpge.sc.h x2, x2, x2
+    cv.cmpge.sc.h x8, x8, x8
+    cv.cmpge.sc.h x20, x20, x20
+    cv.cmpge.sc.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpge-sci-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpge-sci-b-fail.d
new file mode 100644
index 00000000000..80122bf062d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpge-sci-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpge-sci-b-fail.s
+#error_output: cv-simd-cmpge-sci-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpge-sci-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpge-sci-b-fail.l
new file mode 100644
index 00000000000..cfebdde1262
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpge-sci-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpge.sci.b x32,x32,20'
+.*: Error: illegal operands `cv.cmpge.sci.b x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpge-sci-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpge-sci-b-fail.s
new file mode 100644
index 00000000000..3a1cda683e4
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpge-sci-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.cmpge.sci.b x32, x32, 20
+    cv.cmpge.sci.b x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.cmpge.sci.b x6, x7, -33
+    cv.cmpge.sci.b x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpge-sci-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpge-sci-b-pass.d
new file mode 100644
index 00000000000..c7c0838d69e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpge-sci-b-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpge-sci-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	1ca0707b          	cv.cmpge.sci.b	zero,zero,20
+   4:	1ca0f0fb          	cv.cmpge.sci.b	ra,ra,20
+   8:	1ca1717b          	cv.cmpge.sci.b	sp,sp,20
+   c:	1ca4747b          	cv.cmpge.sci.b	s0,s0,20
+  10:	1caa7a7b          	cv.cmpge.sci.b	s4,s4,20
+  14:	1caffffb          	cv.cmpge.sci.b	t6,t6,20
+  18:	1d03f37b          	cv.cmpge.sci.b	t1,t2,-32
+  1c:	1c03f37b          	cv.cmpge.sci.b	t1,t2,0
+  20:	1ef3f37b          	cv.cmpge.sci.b	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpge-sci-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpge-sci-b-pass.s
new file mode 100644
index 00000000000..34a141f45fe
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpge-sci-b-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.cmpge.sci.b x0, x0, 20
+    cv.cmpge.sci.b x1, x1, 20
+    cv.cmpge.sci.b x2, x2, 20
+    cv.cmpge.sci.b x8, x8, 20
+    cv.cmpge.sci.b x20, x20, 20
+    cv.cmpge.sci.b x31, x31, 20
+    #Immediate Values Test
+    cv.cmpge.sci.b x6, x7, -32
+    cv.cmpge.sci.b x6, x7, 0
+    cv.cmpge.sci.b x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpge-sci-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpge-sci-h-fail.d
new file mode 100644
index 00000000000..b5a66ffd965
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpge-sci-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpge-sci-h-fail.s
+#error_output: cv-simd-cmpge-sci-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpge-sci-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpge-sci-h-fail.l
new file mode 100644
index 00000000000..b29956b0d6c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpge-sci-h-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpge.sci.h x32,x32,20'
+.*: Error: illegal operands `cv.cmpge.sci.h x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpge-sci-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpge-sci-h-fail.s
new file mode 100644
index 00000000000..67c61e70c2b
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpge-sci-h-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.cmpge.sci.h x32, x32, 20
+    cv.cmpge.sci.h x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.cmpge.sci.h x6, x7, -33
+    cv.cmpge.sci.h x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpge-sci-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpge-sci-h-pass.d
new file mode 100644
index 00000000000..4651c97bf4c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpge-sci-h-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpge-sci-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	1ca0607b          	cv.cmpge.sci.h	zero,zero,20
+   4:	1ca0e0fb          	cv.cmpge.sci.h	ra,ra,20
+   8:	1ca1617b          	cv.cmpge.sci.h	sp,sp,20
+   c:	1ca4647b          	cv.cmpge.sci.h	s0,s0,20
+  10:	1caa6a7b          	cv.cmpge.sci.h	s4,s4,20
+  14:	1cafeffb          	cv.cmpge.sci.h	t6,t6,20
+  18:	1d03e37b          	cv.cmpge.sci.h	t1,t2,-32
+  1c:	1c03e37b          	cv.cmpge.sci.h	t1,t2,0
+  20:	1ef3e37b          	cv.cmpge.sci.h	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpge-sci-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpge-sci-h-pass.s
new file mode 100644
index 00000000000..1ac8e796e6c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpge-sci-h-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.cmpge.sci.h x0, x0, 20
+    cv.cmpge.sci.h x1, x1, 20
+    cv.cmpge.sci.h x2, x2, 20
+    cv.cmpge.sci.h x8, x8, 20
+    cv.cmpge.sci.h x20, x20, 20
+    cv.cmpge.sci.h x31, x31, 20
+    #Immediate Values Test
+    cv.cmpge.sci.h x6, x7, -32
+    cv.cmpge.sci.h x6, x7, 0
+    cv.cmpge.sci.h x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgeu-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-b-fail.d
new file mode 100644
index 00000000000..52fbe0058e4
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgeu-b-fail.s
+#error_output: cv-simd-cmpgeu-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgeu-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-b-fail.l
new file mode 100644
index 00000000000..a5765fd2abb
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpgeu.b x32,x32,x32'
+.*: Error: illegal operands `cv.cmpgeu.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgeu-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-b-fail.s
new file mode 100644
index 00000000000..73f313280cf
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmpgeu.b x32, x32, x32
+    cv.cmpgeu.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgeu-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-b-pass.d
new file mode 100644
index 00000000000..755a62d7636
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgeu-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	3c00107b          	cv.cmpgeu.b	zero,zero,zero
+   4:	3c1090fb          	cv.cmpgeu.b	ra,ra,ra
+   8:	3c21117b          	cv.cmpgeu.b	sp,sp,sp
+   c:	3c84147b          	cv.cmpgeu.b	s0,s0,s0
+  10:	3d4a1a7b          	cv.cmpgeu.b	s4,s4,s4
+  14:	3dff9ffb          	cv.cmpgeu.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgeu-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-b-pass.s
new file mode 100644
index 00000000000..9d134a5f9c9
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmpgeu.b x0, x0, x0
+    cv.cmpgeu.b x1, x1, x1
+    cv.cmpgeu.b x2, x2, x2
+    cv.cmpgeu.b x8, x8, x8
+    cv.cmpgeu.b x20, x20, x20
+    cv.cmpgeu.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgeu-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-h-fail.d
new file mode 100644
index 00000000000..b026ee73432
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgeu-h-fail.s
+#error_output: cv-simd-cmpgeu-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgeu-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-h-fail.l
new file mode 100644
index 00000000000..237d1505e05
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpgeu.h x32,x32,x32'
+.*: Error: illegal operands `cv.cmpgeu.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgeu-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-h-fail.s
new file mode 100644
index 00000000000..6c58cc8c466
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmpgeu.h x32, x32, x32
+    cv.cmpgeu.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgeu-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-h-pass.d
new file mode 100644
index 00000000000..ba0f05878ed
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgeu-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	3c00007b          	cv.cmpgeu.h	zero,zero,zero
+   4:	3c1080fb          	cv.cmpgeu.h	ra,ra,ra
+   8:	3c21017b          	cv.cmpgeu.h	sp,sp,sp
+   c:	3c84047b          	cv.cmpgeu.h	s0,s0,s0
+  10:	3d4a0a7b          	cv.cmpgeu.h	s4,s4,s4
+  14:	3dff8ffb          	cv.cmpgeu.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgeu-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-h-pass.s
new file mode 100644
index 00000000000..6981d4bf05e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmpgeu.h x0, x0, x0
+    cv.cmpgeu.h x1, x1, x1
+    cv.cmpgeu.h x2, x2, x2
+    cv.cmpgeu.h x8, x8, x8
+    cv.cmpgeu.h x20, x20, x20
+    cv.cmpgeu.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-b-fail.d
new file mode 100644
index 00000000000..92885ecc5a7
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgeu-sc-b-fail.s
+#error_output: cv-simd-cmpgeu-sc-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-b-fail.l
new file mode 100644
index 00000000000..d80803402ba
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpgeu.sc.b x32,x32,x32'
+.*: Error: illegal operands `cv.cmpgeu.sc.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-b-fail.s
new file mode 100644
index 00000000000..59641fd93ca
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmpgeu.sc.b x32, x32, x32
+    cv.cmpgeu.sc.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-b-pass.d
new file mode 100644
index 00000000000..11cf81d6cce
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgeu-sc-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	3c00507b          	cv.cmpgeu.sc.b	zero,zero,zero
+   4:	3c10d0fb          	cv.cmpgeu.sc.b	ra,ra,ra
+   8:	3c21517b          	cv.cmpgeu.sc.b	sp,sp,sp
+   c:	3c84547b          	cv.cmpgeu.sc.b	s0,s0,s0
+  10:	3d4a5a7b          	cv.cmpgeu.sc.b	s4,s4,s4
+  14:	3dffdffb          	cv.cmpgeu.sc.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-b-pass.s
new file mode 100644
index 00000000000..bad8aad78b4
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmpgeu.sc.b x0, x0, x0
+    cv.cmpgeu.sc.b x1, x1, x1
+    cv.cmpgeu.sc.b x2, x2, x2
+    cv.cmpgeu.sc.b x8, x8, x8
+    cv.cmpgeu.sc.b x20, x20, x20
+    cv.cmpgeu.sc.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-h-fail.d
new file mode 100644
index 00000000000..e8e302d2f86
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgeu-sc-h-fail.s
+#error_output: cv-simd-cmpgeu-sc-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-h-fail.l
new file mode 100644
index 00000000000..711b5fd0a4f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpgeu.sc.h x32,x32,x32'
+.*: Error: illegal operands `cv.cmpgeu.sc.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-h-fail.s
new file mode 100644
index 00000000000..f3e9c164cdc
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmpgeu.sc.h x32, x32, x32
+    cv.cmpgeu.sc.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-h-pass.d
new file mode 100644
index 00000000000..145bff760d6
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgeu-sc-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	3c00407b          	cv.cmpgeu.sc.h	zero,zero,zero
+   4:	3c10c0fb          	cv.cmpgeu.sc.h	ra,ra,ra
+   8:	3c21417b          	cv.cmpgeu.sc.h	sp,sp,sp
+   c:	3c84447b          	cv.cmpgeu.sc.h	s0,s0,s0
+  10:	3d4a4a7b          	cv.cmpgeu.sc.h	s4,s4,s4
+  14:	3dffcffb          	cv.cmpgeu.sc.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-h-pass.s
new file mode 100644
index 00000000000..78dcb5d7faa
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sc-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmpgeu.sc.h x0, x0, x0
+    cv.cmpgeu.sc.h x1, x1, x1
+    cv.cmpgeu.sc.h x2, x2, x2
+    cv.cmpgeu.sc.h x8, x8, x8
+    cv.cmpgeu.sc.h x20, x20, x20
+    cv.cmpgeu.sc.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-b-fail.d
new file mode 100644
index 00000000000..6f30fc63775
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgeu-sci-b-fail.s
+#error_output: cv-simd-cmpgeu-sci-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-b-fail.l
new file mode 100644
index 00000000000..199cf8e2677
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpgeu.sci.b x32,x32,20'
+.*: Error: illegal operands `cv.cmpgeu.sci.b x33,x33,20'
+.*: Error: immediate value must be 6-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 6-bit unsigned, 64 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-b-fail.s
new file mode 100644
index 00000000000..5ad2b6b2926
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.cmpgeu.sci.b x32, x32, 20
+    cv.cmpgeu.sci.b x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.cmpgeu.sci.b x6, x7, -1
+    cv.cmpgeu.sci.b x6, x7, 64
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-b-pass.d
new file mode 100644
index 00000000000..23bad539c54
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-b-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgeu-sci-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	3ca0707b          	cv.cmpgeu.sci.b	zero,zero,20
+   4:	3ca0f0fb          	cv.cmpgeu.sci.b	ra,ra,20
+   8:	3ca1717b          	cv.cmpgeu.sci.b	sp,sp,20
+   c:	3ca4747b          	cv.cmpgeu.sci.b	s0,s0,20
+  10:	3caa7a7b          	cv.cmpgeu.sci.b	s4,s4,20
+  14:	3caffffb          	cv.cmpgeu.sci.b	t6,t6,20
+  18:	3c03f37b          	cv.cmpgeu.sci.b	t1,t2,0
+  1c:	3ff3f37b          	cv.cmpgeu.sci.b	t1,t2,63
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-b-pass.s
new file mode 100644
index 00000000000..86db54973e1
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-b-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.cmpgeu.sci.b x0, x0, 20
+    cv.cmpgeu.sci.b x1, x1, 20
+    cv.cmpgeu.sci.b x2, x2, 20
+    cv.cmpgeu.sci.b x8, x8, 20
+    cv.cmpgeu.sci.b x20, x20, 20
+    cv.cmpgeu.sci.b x31, x31, 20
+    #Immediate Values Test
+    cv.cmpgeu.sci.b x6, x7, 0
+    cv.cmpgeu.sci.b x6, x7, 63
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-h-fail.d
new file mode 100644
index 00000000000..850860ea855
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgeu-sci-h-fail.s
+#error_output: cv-simd-cmpgeu-sci-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-h-fail.l
new file mode 100644
index 00000000000..81243bb67d0
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-h-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpgeu.sci.h x32,x32,20'
+.*: Error: illegal operands `cv.cmpgeu.sci.h x33,x33,20'
+.*: Error: immediate value must be 6-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 6-bit unsigned, 64 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-h-fail.s
new file mode 100644
index 00000000000..0efe6080655
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-h-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.cmpgeu.sci.h x32, x32, 20
+    cv.cmpgeu.sci.h x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.cmpgeu.sci.h x6, x7, -1
+    cv.cmpgeu.sci.h x6, x7, 64
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-h-pass.d
new file mode 100644
index 00000000000..8cfd2a47298
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-h-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgeu-sci-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	3ca0607b          	cv.cmpgeu.sci.h	zero,zero,20
+   4:	3ca0e0fb          	cv.cmpgeu.sci.h	ra,ra,20
+   8:	3ca1617b          	cv.cmpgeu.sci.h	sp,sp,20
+   c:	3ca4647b          	cv.cmpgeu.sci.h	s0,s0,20
+  10:	3caa6a7b          	cv.cmpgeu.sci.h	s4,s4,20
+  14:	3cafeffb          	cv.cmpgeu.sci.h	t6,t6,20
+  18:	3c03e37b          	cv.cmpgeu.sci.h	t1,t2,0
+  1c:	3ff3e37b          	cv.cmpgeu.sci.h	t1,t2,63
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-h-pass.s
new file mode 100644
index 00000000000..7272c7b4c68
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgeu-sci-h-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.cmpgeu.sci.h x0, x0, 20
+    cv.cmpgeu.sci.h x1, x1, 20
+    cv.cmpgeu.sci.h x2, x2, 20
+    cv.cmpgeu.sci.h x8, x8, 20
+    cv.cmpgeu.sci.h x20, x20, 20
+    cv.cmpgeu.sci.h x31, x31, 20
+    #Immediate Values Test
+    cv.cmpgeu.sci.h x6, x7, 0
+    cv.cmpgeu.sci.h x6, x7, 63
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgt-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpgt-b-fail.d
new file mode 100644
index 00000000000..06713e63512
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgt-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgt-b-fail.s
+#error_output: cv-simd-cmpgt-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgt-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpgt-b-fail.l
new file mode 100644
index 00000000000..4e68125dad4
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgt-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpgt.b x32,x32,x32'
+.*: Error: illegal operands `cv.cmpgt.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgt-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpgt-b-fail.s
new file mode 100644
index 00000000000..378c6ece39b
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgt-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmpgt.b x32, x32, x32
+    cv.cmpgt.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgt-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpgt-b-pass.d
new file mode 100644
index 00000000000..daf50430a15
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgt-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgt-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	1400107b          	cv.cmpgt.b	zero,zero,zero
+   4:	141090fb          	cv.cmpgt.b	ra,ra,ra
+   8:	1421117b          	cv.cmpgt.b	sp,sp,sp
+   c:	1484147b          	cv.cmpgt.b	s0,s0,s0
+  10:	154a1a7b          	cv.cmpgt.b	s4,s4,s4
+  14:	15ff9ffb          	cv.cmpgt.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgt-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpgt-b-pass.s
new file mode 100644
index 00000000000..eb895c512f6
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgt-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmpgt.b x0, x0, x0
+    cv.cmpgt.b x1, x1, x1
+    cv.cmpgt.b x2, x2, x2
+    cv.cmpgt.b x8, x8, x8
+    cv.cmpgt.b x20, x20, x20
+    cv.cmpgt.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgt-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpgt-h-fail.d
new file mode 100644
index 00000000000..b1f8f066bb7
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgt-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgt-h-fail.s
+#error_output: cv-simd-cmpgt-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgt-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpgt-h-fail.l
new file mode 100644
index 00000000000..9237078e20a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgt-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpgt.h x32,x32,x32'
+.*: Error: illegal operands `cv.cmpgt.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgt-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpgt-h-fail.s
new file mode 100644
index 00000000000..d0c6cec4fed
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgt-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmpgt.h x32, x32, x32
+    cv.cmpgt.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgt-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpgt-h-pass.d
new file mode 100644
index 00000000000..74de9d8d350
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgt-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgt-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	1400007b          	cv.cmpgt.h	zero,zero,zero
+   4:	141080fb          	cv.cmpgt.h	ra,ra,ra
+   8:	1421017b          	cv.cmpgt.h	sp,sp,sp
+   c:	1484047b          	cv.cmpgt.h	s0,s0,s0
+  10:	154a0a7b          	cv.cmpgt.h	s4,s4,s4
+  14:	15ff8ffb          	cv.cmpgt.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgt-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpgt-h-pass.s
new file mode 100644
index 00000000000..721f9e7cc15
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgt-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmpgt.h x0, x0, x0
+    cv.cmpgt.h x1, x1, x1
+    cv.cmpgt.h x2, x2, x2
+    cv.cmpgt.h x8, x8, x8
+    cv.cmpgt.h x20, x20, x20
+    cv.cmpgt.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-b-fail.d
new file mode 100644
index 00000000000..8bf0da8cbe0
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgt-sc-b-fail.s
+#error_output: cv-simd-cmpgt-sc-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-b-fail.l
new file mode 100644
index 00000000000..526c0b90ba9
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpgt.sc.b x32,x32,x32'
+.*: Error: illegal operands `cv.cmpgt.sc.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-b-fail.s
new file mode 100644
index 00000000000..d90150fdca5
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmpgt.sc.b x32, x32, x32
+    cv.cmpgt.sc.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-b-pass.d
new file mode 100644
index 00000000000..a724df267d7
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgt-sc-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	1400507b          	cv.cmpgt.sc.b	zero,zero,zero
+   4:	1410d0fb          	cv.cmpgt.sc.b	ra,ra,ra
+   8:	1421517b          	cv.cmpgt.sc.b	sp,sp,sp
+   c:	1484547b          	cv.cmpgt.sc.b	s0,s0,s0
+  10:	154a5a7b          	cv.cmpgt.sc.b	s4,s4,s4
+  14:	15ffdffb          	cv.cmpgt.sc.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-b-pass.s
new file mode 100644
index 00000000000..bf0a2317a09
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmpgt.sc.b x0, x0, x0
+    cv.cmpgt.sc.b x1, x1, x1
+    cv.cmpgt.sc.b x2, x2, x2
+    cv.cmpgt.sc.b x8, x8, x8
+    cv.cmpgt.sc.b x20, x20, x20
+    cv.cmpgt.sc.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-h-fail.d
new file mode 100644
index 00000000000..03744bfd706
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgt-sc-h-fail.s
+#error_output: cv-simd-cmpgt-sc-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-h-fail.l
new file mode 100644
index 00000000000..e13663d6149
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpgt.sc.h x32,x32,x32'
+.*: Error: illegal operands `cv.cmpgt.sc.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-h-fail.s
new file mode 100644
index 00000000000..a69ec47ce84
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmpgt.sc.h x32, x32, x32
+    cv.cmpgt.sc.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-h-pass.d
new file mode 100644
index 00000000000..ea7792b1411
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgt-sc-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	1400407b          	cv.cmpgt.sc.h	zero,zero,zero
+   4:	1410c0fb          	cv.cmpgt.sc.h	ra,ra,ra
+   8:	1421417b          	cv.cmpgt.sc.h	sp,sp,sp
+   c:	1484447b          	cv.cmpgt.sc.h	s0,s0,s0
+  10:	154a4a7b          	cv.cmpgt.sc.h	s4,s4,s4
+  14:	15ffcffb          	cv.cmpgt.sc.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-h-pass.s
new file mode 100644
index 00000000000..4d9d07011d7
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sc-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmpgt.sc.h x0, x0, x0
+    cv.cmpgt.sc.h x1, x1, x1
+    cv.cmpgt.sc.h x2, x2, x2
+    cv.cmpgt.sc.h x8, x8, x8
+    cv.cmpgt.sc.h x20, x20, x20
+    cv.cmpgt.sc.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-b-fail.d
new file mode 100644
index 00000000000..2919d4bb629
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgt-sci-b-fail.s
+#error_output: cv-simd-cmpgt-sci-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-b-fail.l
new file mode 100644
index 00000000000..0afcded817f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpgt.sci.b x32,x32,20'
+.*: Error: illegal operands `cv.cmpgt.sci.b x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-b-fail.s
new file mode 100644
index 00000000000..6afc6cfa887
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.cmpgt.sci.b x32, x32, 20
+    cv.cmpgt.sci.b x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.cmpgt.sci.b x6, x7, -33
+    cv.cmpgt.sci.b x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-b-pass.d
new file mode 100644
index 00000000000..da3734fc1dc
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-b-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgt-sci-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	14a0707b          	cv.cmpgt.sci.b	zero,zero,20
+   4:	14a0f0fb          	cv.cmpgt.sci.b	ra,ra,20
+   8:	14a1717b          	cv.cmpgt.sci.b	sp,sp,20
+   c:	14a4747b          	cv.cmpgt.sci.b	s0,s0,20
+  10:	14aa7a7b          	cv.cmpgt.sci.b	s4,s4,20
+  14:	14affffb          	cv.cmpgt.sci.b	t6,t6,20
+  18:	1503f37b          	cv.cmpgt.sci.b	t1,t2,-32
+  1c:	1403f37b          	cv.cmpgt.sci.b	t1,t2,0
+  20:	16f3f37b          	cv.cmpgt.sci.b	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-b-pass.s
new file mode 100644
index 00000000000..be38ddfe800
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-b-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.cmpgt.sci.b x0, x0, 20
+    cv.cmpgt.sci.b x1, x1, 20
+    cv.cmpgt.sci.b x2, x2, 20
+    cv.cmpgt.sci.b x8, x8, 20
+    cv.cmpgt.sci.b x20, x20, 20
+    cv.cmpgt.sci.b x31, x31, 20
+    #Immediate Values Test
+    cv.cmpgt.sci.b x6, x7, -32
+    cv.cmpgt.sci.b x6, x7, 0
+    cv.cmpgt.sci.b x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-h-fail.d
new file mode 100644
index 00000000000..c90370a2788
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgt-sci-h-fail.s
+#error_output: cv-simd-cmpgt-sci-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-h-fail.l
new file mode 100644
index 00000000000..cb3234ffa5d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-h-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpgt.sci.h x32,x32,20'
+.*: Error: illegal operands `cv.cmpgt.sci.h x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-h-fail.s
new file mode 100644
index 00000000000..50e9975caf8
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-h-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.cmpgt.sci.h x32, x32, 20
+    cv.cmpgt.sci.h x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.cmpgt.sci.h x6, x7, -33
+    cv.cmpgt.sci.h x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-h-pass.d
new file mode 100644
index 00000000000..844dc76a020
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-h-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgt-sci-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	14a0607b          	cv.cmpgt.sci.h	zero,zero,20
+   4:	14a0e0fb          	cv.cmpgt.sci.h	ra,ra,20
+   8:	14a1617b          	cv.cmpgt.sci.h	sp,sp,20
+   c:	14a4647b          	cv.cmpgt.sci.h	s0,s0,20
+  10:	14aa6a7b          	cv.cmpgt.sci.h	s4,s4,20
+  14:	14afeffb          	cv.cmpgt.sci.h	t6,t6,20
+  18:	1503e37b          	cv.cmpgt.sci.h	t1,t2,-32
+  1c:	1403e37b          	cv.cmpgt.sci.h	t1,t2,0
+  20:	16f3e37b          	cv.cmpgt.sci.h	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-h-pass.s
new file mode 100644
index 00000000000..128e103f033
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgt-sci-h-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.cmpgt.sci.h x0, x0, 20
+    cv.cmpgt.sci.h x1, x1, 20
+    cv.cmpgt.sci.h x2, x2, 20
+    cv.cmpgt.sci.h x8, x8, 20
+    cv.cmpgt.sci.h x20, x20, 20
+    cv.cmpgt.sci.h x31, x31, 20
+    #Immediate Values Test
+    cv.cmpgt.sci.h x6, x7, -32
+    cv.cmpgt.sci.h x6, x7, 0
+    cv.cmpgt.sci.h x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgtu-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-b-fail.d
new file mode 100644
index 00000000000..63ee1bdc4bd
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgtu-b-fail.s
+#error_output: cv-simd-cmpgtu-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgtu-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-b-fail.l
new file mode 100644
index 00000000000..dec5965c148
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpgtu.b x32,x32,x32'
+.*: Error: illegal operands `cv.cmpgtu.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgtu-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-b-fail.s
new file mode 100644
index 00000000000..42aa8c5611a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmpgtu.b x32, x32, x32
+    cv.cmpgtu.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgtu-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-b-pass.d
new file mode 100644
index 00000000000..5d3aa8d7ff5
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgtu-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	3400107b          	cv.cmpgtu.b	zero,zero,zero
+   4:	341090fb          	cv.cmpgtu.b	ra,ra,ra
+   8:	3421117b          	cv.cmpgtu.b	sp,sp,sp
+   c:	3484147b          	cv.cmpgtu.b	s0,s0,s0
+  10:	354a1a7b          	cv.cmpgtu.b	s4,s4,s4
+  14:	35ff9ffb          	cv.cmpgtu.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgtu-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-b-pass.s
new file mode 100644
index 00000000000..d086aafd4f7
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmpgtu.b x0, x0, x0
+    cv.cmpgtu.b x1, x1, x1
+    cv.cmpgtu.b x2, x2, x2
+    cv.cmpgtu.b x8, x8, x8
+    cv.cmpgtu.b x20, x20, x20
+    cv.cmpgtu.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgtu-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-h-fail.d
new file mode 100644
index 00000000000..fb528c57508
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgtu-h-fail.s
+#error_output: cv-simd-cmpgtu-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgtu-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-h-fail.l
new file mode 100644
index 00000000000..09b6b0c67fb
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpgtu.h x32,x32,x32'
+.*: Error: illegal operands `cv.cmpgtu.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgtu-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-h-fail.s
new file mode 100644
index 00000000000..3ddcd7aba97
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmpgtu.h x32, x32, x32
+    cv.cmpgtu.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgtu-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-h-pass.d
new file mode 100644
index 00000000000..a08da4ff5b2
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgtu-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	3400007b          	cv.cmpgtu.h	zero,zero,zero
+   4:	341080fb          	cv.cmpgtu.h	ra,ra,ra
+   8:	3421017b          	cv.cmpgtu.h	sp,sp,sp
+   c:	3484047b          	cv.cmpgtu.h	s0,s0,s0
+  10:	354a0a7b          	cv.cmpgtu.h	s4,s4,s4
+  14:	35ff8ffb          	cv.cmpgtu.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgtu-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-h-pass.s
new file mode 100644
index 00000000000..5487c53a4c9
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmpgtu.h x0, x0, x0
+    cv.cmpgtu.h x1, x1, x1
+    cv.cmpgtu.h x2, x2, x2
+    cv.cmpgtu.h x8, x8, x8
+    cv.cmpgtu.h x20, x20, x20
+    cv.cmpgtu.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-b-fail.d
new file mode 100644
index 00000000000..cebe6125b5c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgtu-sc-b-fail.s
+#error_output: cv-simd-cmpgtu-sc-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-b-fail.l
new file mode 100644
index 00000000000..8e61b4687f9
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpgtu.sc.b x32,x32,x32'
+.*: Error: illegal operands `cv.cmpgtu.sc.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-b-fail.s
new file mode 100644
index 00000000000..995f3d9f7ab
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmpgtu.sc.b x32, x32, x32
+    cv.cmpgtu.sc.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-b-pass.d
new file mode 100644
index 00000000000..cfbe16753df
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgtu-sc-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	3400507b          	cv.cmpgtu.sc.b	zero,zero,zero
+   4:	3410d0fb          	cv.cmpgtu.sc.b	ra,ra,ra
+   8:	3421517b          	cv.cmpgtu.sc.b	sp,sp,sp
+   c:	3484547b          	cv.cmpgtu.sc.b	s0,s0,s0
+  10:	354a5a7b          	cv.cmpgtu.sc.b	s4,s4,s4
+  14:	35ffdffb          	cv.cmpgtu.sc.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-b-pass.s
new file mode 100644
index 00000000000..7433324f6fa
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmpgtu.sc.b x0, x0, x0
+    cv.cmpgtu.sc.b x1, x1, x1
+    cv.cmpgtu.sc.b x2, x2, x2
+    cv.cmpgtu.sc.b x8, x8, x8
+    cv.cmpgtu.sc.b x20, x20, x20
+    cv.cmpgtu.sc.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-h-fail.d
new file mode 100644
index 00000000000..3dfb1d87383
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgtu-sc-h-fail.s
+#error_output: cv-simd-cmpgtu-sc-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-h-fail.l
new file mode 100644
index 00000000000..db82748d2ab
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpgtu.sc.h x32,x32,x32'
+.*: Error: illegal operands `cv.cmpgtu.sc.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-h-fail.s
new file mode 100644
index 00000000000..bc6a47abb5f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmpgtu.sc.h x32, x32, x32
+    cv.cmpgtu.sc.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-h-pass.d
new file mode 100644
index 00000000000..46f600935f6
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgtu-sc-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	3400407b          	cv.cmpgtu.sc.h	zero,zero,zero
+   4:	3410c0fb          	cv.cmpgtu.sc.h	ra,ra,ra
+   8:	3421417b          	cv.cmpgtu.sc.h	sp,sp,sp
+   c:	3484447b          	cv.cmpgtu.sc.h	s0,s0,s0
+  10:	354a4a7b          	cv.cmpgtu.sc.h	s4,s4,s4
+  14:	35ffcffb          	cv.cmpgtu.sc.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-h-pass.s
new file mode 100644
index 00000000000..6f9e70effb3
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sc-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmpgtu.sc.h x0, x0, x0
+    cv.cmpgtu.sc.h x1, x1, x1
+    cv.cmpgtu.sc.h x2, x2, x2
+    cv.cmpgtu.sc.h x8, x8, x8
+    cv.cmpgtu.sc.h x20, x20, x20
+    cv.cmpgtu.sc.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-b-fail.d
new file mode 100644
index 00000000000..511d8b71653
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgtu-sci-b-fail.s
+#error_output: cv-simd-cmpgtu-sci-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-b-fail.l
new file mode 100644
index 00000000000..765eb803d77
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpgtu.sci.b x32,x32,20'
+.*: Error: illegal operands `cv.cmpgtu.sci.b x33,x33,20'
+.*: Error: immediate value must be 6-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 6-bit unsigned, 64 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-b-fail.s
new file mode 100644
index 00000000000..aacb26b1159
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.cmpgtu.sci.b x32, x32, 20
+    cv.cmpgtu.sci.b x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.cmpgtu.sci.b x6, x7, -1
+    cv.cmpgtu.sci.b x6, x7, 64
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-b-pass.d
new file mode 100644
index 00000000000..8e230445944
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-b-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgtu-sci-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	34a0707b          	cv.cmpgtu.sci.b	zero,zero,20
+   4:	34a0f0fb          	cv.cmpgtu.sci.b	ra,ra,20
+   8:	34a1717b          	cv.cmpgtu.sci.b	sp,sp,20
+   c:	34a4747b          	cv.cmpgtu.sci.b	s0,s0,20
+  10:	34aa7a7b          	cv.cmpgtu.sci.b	s4,s4,20
+  14:	34affffb          	cv.cmpgtu.sci.b	t6,t6,20
+  18:	3403f37b          	cv.cmpgtu.sci.b	t1,t2,0
+  1c:	37f3f37b          	cv.cmpgtu.sci.b	t1,t2,63
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-b-pass.s
new file mode 100644
index 00000000000..0d60dbd2792
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-b-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.cmpgtu.sci.b x0, x0, 20
+    cv.cmpgtu.sci.b x1, x1, 20
+    cv.cmpgtu.sci.b x2, x2, 20
+    cv.cmpgtu.sci.b x8, x8, 20
+    cv.cmpgtu.sci.b x20, x20, 20
+    cv.cmpgtu.sci.b x31, x31, 20
+    #Immediate Values Test
+    cv.cmpgtu.sci.b x6, x7, 0
+    cv.cmpgtu.sci.b x6, x7, 63
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-h-fail.d
new file mode 100644
index 00000000000..7813fc68442
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgtu-sci-h-fail.s
+#error_output: cv-simd-cmpgtu-sci-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-h-fail.l
new file mode 100644
index 00000000000..424630562ee
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-h-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpgtu.sci.h x32,x32,20'
+.*: Error: illegal operands `cv.cmpgtu.sci.h x33,x33,20'
+.*: Error: immediate value must be 6-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 6-bit unsigned, 64 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-h-fail.s
new file mode 100644
index 00000000000..a3c6ae574c3
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-h-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.cmpgtu.sci.h x32, x32, 20
+    cv.cmpgtu.sci.h x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.cmpgtu.sci.h x6, x7, -1
+    cv.cmpgtu.sci.h x6, x7, 64
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-h-pass.d
new file mode 100644
index 00000000000..9f7ea98e3fa
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-h-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpgtu-sci-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	34a0607b          	cv.cmpgtu.sci.h	zero,zero,20
+   4:	34a0e0fb          	cv.cmpgtu.sci.h	ra,ra,20
+   8:	34a1617b          	cv.cmpgtu.sci.h	sp,sp,20
+   c:	34a4647b          	cv.cmpgtu.sci.h	s0,s0,20
+  10:	34aa6a7b          	cv.cmpgtu.sci.h	s4,s4,20
+  14:	34afeffb          	cv.cmpgtu.sci.h	t6,t6,20
+  18:	3403e37b          	cv.cmpgtu.sci.h	t1,t2,0
+  1c:	37f3e37b          	cv.cmpgtu.sci.h	t1,t2,63
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-h-pass.s
new file mode 100644
index 00000000000..2a9d34ebfec
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpgtu-sci-h-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.cmpgtu.sci.h x0, x0, 20
+    cv.cmpgtu.sci.h x1, x1, 20
+    cv.cmpgtu.sci.h x2, x2, 20
+    cv.cmpgtu.sci.h x8, x8, 20
+    cv.cmpgtu.sci.h x20, x20, 20
+    cv.cmpgtu.sci.h x31, x31, 20
+    #Immediate Values Test
+    cv.cmpgtu.sci.h x6, x7, 0
+    cv.cmpgtu.sci.h x6, x7, 63
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmple-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmple-b-fail.d
new file mode 100644
index 00000000000..a6907dd5a95
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmple-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmple-b-fail.s
+#error_output: cv-simd-cmple-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmple-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmple-b-fail.l
new file mode 100644
index 00000000000..c1ce1e95e57
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmple-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmple.b x32,x32,x32'
+.*: Error: illegal operands `cv.cmple.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmple-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmple-b-fail.s
new file mode 100644
index 00000000000..9c8aae64d55
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmple-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmple.b x32, x32, x32
+    cv.cmple.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmple-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmple-b-pass.d
new file mode 100644
index 00000000000..927374db6cf
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmple-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmple-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	2c00107b          	cv.cmple.b	zero,zero,zero
+   4:	2c1090fb          	cv.cmple.b	ra,ra,ra
+   8:	2c21117b          	cv.cmple.b	sp,sp,sp
+   c:	2c84147b          	cv.cmple.b	s0,s0,s0
+  10:	2d4a1a7b          	cv.cmple.b	s4,s4,s4
+  14:	2dff9ffb          	cv.cmple.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmple-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmple-b-pass.s
new file mode 100644
index 00000000000..5fab1cd9124
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmple-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmple.b x0, x0, x0
+    cv.cmple.b x1, x1, x1
+    cv.cmple.b x2, x2, x2
+    cv.cmple.b x8, x8, x8
+    cv.cmple.b x20, x20, x20
+    cv.cmple.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmple-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmple-h-fail.d
new file mode 100644
index 00000000000..bbc68c94565
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmple-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmple-h-fail.s
+#error_output: cv-simd-cmple-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmple-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmple-h-fail.l
new file mode 100644
index 00000000000..90dc4e90829
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmple-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmple.h x32,x32,x32'
+.*: Error: illegal operands `cv.cmple.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmple-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmple-h-fail.s
new file mode 100644
index 00000000000..d80043ebde5
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmple-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmple.h x32, x32, x32
+    cv.cmple.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmple-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmple-h-pass.d
new file mode 100644
index 00000000000..b98c0094d42
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmple-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmple-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	2c00007b          	cv.cmple.h	zero,zero,zero
+   4:	2c1080fb          	cv.cmple.h	ra,ra,ra
+   8:	2c21017b          	cv.cmple.h	sp,sp,sp
+   c:	2c84047b          	cv.cmple.h	s0,s0,s0
+  10:	2d4a0a7b          	cv.cmple.h	s4,s4,s4
+  14:	2dff8ffb          	cv.cmple.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmple-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmple-h-pass.s
new file mode 100644
index 00000000000..afcf7435a36
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmple-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmple.h x0, x0, x0
+    cv.cmple.h x1, x1, x1
+    cv.cmple.h x2, x2, x2
+    cv.cmple.h x8, x8, x8
+    cv.cmple.h x20, x20, x20
+    cv.cmple.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmple-sc-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmple-sc-b-fail.d
new file mode 100644
index 00000000000..74c37e5f187
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmple-sc-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmple-sc-b-fail.s
+#error_output: cv-simd-cmple-sc-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmple-sc-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmple-sc-b-fail.l
new file mode 100644
index 00000000000..74b287452ea
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmple-sc-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmple.sc.b x32,x32,x32'
+.*: Error: illegal operands `cv.cmple.sc.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmple-sc-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmple-sc-b-fail.s
new file mode 100644
index 00000000000..6c2a2b3cf38
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmple-sc-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmple.sc.b x32, x32, x32
+    cv.cmple.sc.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmple-sc-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmple-sc-b-pass.d
new file mode 100644
index 00000000000..00120c97862
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmple-sc-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmple-sc-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	2c00507b          	cv.cmple.sc.b	zero,zero,zero
+   4:	2c10d0fb          	cv.cmple.sc.b	ra,ra,ra
+   8:	2c21517b          	cv.cmple.sc.b	sp,sp,sp
+   c:	2c84547b          	cv.cmple.sc.b	s0,s0,s0
+  10:	2d4a5a7b          	cv.cmple.sc.b	s4,s4,s4
+  14:	2dffdffb          	cv.cmple.sc.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmple-sc-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmple-sc-b-pass.s
new file mode 100644
index 00000000000..90d8115fb15
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmple-sc-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmple.sc.b x0, x0, x0
+    cv.cmple.sc.b x1, x1, x1
+    cv.cmple.sc.b x2, x2, x2
+    cv.cmple.sc.b x8, x8, x8
+    cv.cmple.sc.b x20, x20, x20
+    cv.cmple.sc.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmple-sc-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmple-sc-h-fail.d
new file mode 100644
index 00000000000..86ba75fde12
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmple-sc-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmple-sc-h-fail.s
+#error_output: cv-simd-cmple-sc-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmple-sc-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmple-sc-h-fail.l
new file mode 100644
index 00000000000..781dcb28e9a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmple-sc-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmple.sc.h x32,x32,x32'
+.*: Error: illegal operands `cv.cmple.sc.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmple-sc-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmple-sc-h-fail.s
new file mode 100644
index 00000000000..f88621036ca
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmple-sc-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmple.sc.h x32, x32, x32
+    cv.cmple.sc.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmple-sc-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmple-sc-h-pass.d
new file mode 100644
index 00000000000..750cf51f0fd
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmple-sc-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmple-sc-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	2c00407b          	cv.cmple.sc.h	zero,zero,zero
+   4:	2c10c0fb          	cv.cmple.sc.h	ra,ra,ra
+   8:	2c21417b          	cv.cmple.sc.h	sp,sp,sp
+   c:	2c84447b          	cv.cmple.sc.h	s0,s0,s0
+  10:	2d4a4a7b          	cv.cmple.sc.h	s4,s4,s4
+  14:	2dffcffb          	cv.cmple.sc.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmple-sc-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmple-sc-h-pass.s
new file mode 100644
index 00000000000..94a4f5ea19d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmple-sc-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmple.sc.h x0, x0, x0
+    cv.cmple.sc.h x1, x1, x1
+    cv.cmple.sc.h x2, x2, x2
+    cv.cmple.sc.h x8, x8, x8
+    cv.cmple.sc.h x20, x20, x20
+    cv.cmple.sc.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmple-sci-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmple-sci-b-fail.d
new file mode 100644
index 00000000000..92aaddd59ff
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmple-sci-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmple-sci-b-fail.s
+#error_output: cv-simd-cmple-sci-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmple-sci-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmple-sci-b-fail.l
new file mode 100644
index 00000000000..6fbc895b3ea
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmple-sci-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmple.sci.b x32,x32,20'
+.*: Error: illegal operands `cv.cmple.sci.b x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmple-sci-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmple-sci-b-fail.s
new file mode 100644
index 00000000000..76927d84bd6
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmple-sci-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.cmple.sci.b x32, x32, 20
+    cv.cmple.sci.b x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.cmple.sci.b x6, x7, -33
+    cv.cmple.sci.b x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmple-sci-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmple-sci-b-pass.d
new file mode 100644
index 00000000000..c9851df4ad5
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmple-sci-b-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmple-sci-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	2ca0707b          	cv.cmple.sci.b	zero,zero,20
+   4:	2ca0f0fb          	cv.cmple.sci.b	ra,ra,20
+   8:	2ca1717b          	cv.cmple.sci.b	sp,sp,20
+   c:	2ca4747b          	cv.cmple.sci.b	s0,s0,20
+  10:	2caa7a7b          	cv.cmple.sci.b	s4,s4,20
+  14:	2caffffb          	cv.cmple.sci.b	t6,t6,20
+  18:	2d03f37b          	cv.cmple.sci.b	t1,t2,-32
+  1c:	2c03f37b          	cv.cmple.sci.b	t1,t2,0
+  20:	2ef3f37b          	cv.cmple.sci.b	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmple-sci-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmple-sci-b-pass.s
new file mode 100644
index 00000000000..472cda7f1de
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmple-sci-b-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.cmple.sci.b x0, x0, 20
+    cv.cmple.sci.b x1, x1, 20
+    cv.cmple.sci.b x2, x2, 20
+    cv.cmple.sci.b x8, x8, 20
+    cv.cmple.sci.b x20, x20, 20
+    cv.cmple.sci.b x31, x31, 20
+    #Immediate Values Test
+    cv.cmple.sci.b x6, x7, -32
+    cv.cmple.sci.b x6, x7, 0
+    cv.cmple.sci.b x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmple-sci-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmple-sci-h-fail.d
new file mode 100644
index 00000000000..30002602360
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmple-sci-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmple-sci-h-fail.s
+#error_output: cv-simd-cmple-sci-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmple-sci-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmple-sci-h-fail.l
new file mode 100644
index 00000000000..ccbf473dbd3
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmple-sci-h-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmple.sci.h x32,x32,20'
+.*: Error: illegal operands `cv.cmple.sci.h x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmple-sci-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmple-sci-h-fail.s
new file mode 100644
index 00000000000..fb4620a024f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmple-sci-h-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.cmple.sci.h x32, x32, 20
+    cv.cmple.sci.h x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.cmple.sci.h x6, x7, -33
+    cv.cmple.sci.h x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmple-sci-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmple-sci-h-pass.d
new file mode 100644
index 00000000000..0a10894d659
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmple-sci-h-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmple-sci-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	2ca0607b          	cv.cmple.sci.h	zero,zero,20
+   4:	2ca0e0fb          	cv.cmple.sci.h	ra,ra,20
+   8:	2ca1617b          	cv.cmple.sci.h	sp,sp,20
+   c:	2ca4647b          	cv.cmple.sci.h	s0,s0,20
+  10:	2caa6a7b          	cv.cmple.sci.h	s4,s4,20
+  14:	2cafeffb          	cv.cmple.sci.h	t6,t6,20
+  18:	2d03e37b          	cv.cmple.sci.h	t1,t2,-32
+  1c:	2c03e37b          	cv.cmple.sci.h	t1,t2,0
+  20:	2ef3e37b          	cv.cmple.sci.h	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmple-sci-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmple-sci-h-pass.s
new file mode 100644
index 00000000000..fcfe70449b6
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmple-sci-h-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.cmple.sci.h x0, x0, 20
+    cv.cmple.sci.h x1, x1, 20
+    cv.cmple.sci.h x2, x2, 20
+    cv.cmple.sci.h x8, x8, 20
+    cv.cmple.sci.h x20, x20, 20
+    cv.cmple.sci.h x31, x31, 20
+    #Immediate Values Test
+    cv.cmple.sci.h x6, x7, -32
+    cv.cmple.sci.h x6, x7, 0
+    cv.cmple.sci.h x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpleu-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpleu-b-fail.d
new file mode 100644
index 00000000000..635991b6097
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpleu-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpleu-b-fail.s
+#error_output: cv-simd-cmpleu-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpleu-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpleu-b-fail.l
new file mode 100644
index 00000000000..906bb044ca7
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpleu-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpleu.b x32,x32,x32'
+.*: Error: illegal operands `cv.cmpleu.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpleu-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpleu-b-fail.s
new file mode 100644
index 00000000000..4e44ba9c39c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpleu-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmpleu.b x32, x32, x32
+    cv.cmpleu.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpleu-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpleu-b-pass.d
new file mode 100644
index 00000000000..8cb04f5a11a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpleu-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpleu-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	4c00107b          	cv.cmpleu.b	zero,zero,zero
+   4:	4c1090fb          	cv.cmpleu.b	ra,ra,ra
+   8:	4c21117b          	cv.cmpleu.b	sp,sp,sp
+   c:	4c84147b          	cv.cmpleu.b	s0,s0,s0
+  10:	4d4a1a7b          	cv.cmpleu.b	s4,s4,s4
+  14:	4dff9ffb          	cv.cmpleu.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpleu-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpleu-b-pass.s
new file mode 100644
index 00000000000..f8026b29065
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpleu-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmpleu.b x0, x0, x0
+    cv.cmpleu.b x1, x1, x1
+    cv.cmpleu.b x2, x2, x2
+    cv.cmpleu.b x8, x8, x8
+    cv.cmpleu.b x20, x20, x20
+    cv.cmpleu.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpleu-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpleu-h-fail.d
new file mode 100644
index 00000000000..f2a3d69363c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpleu-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpleu-h-fail.s
+#error_output: cv-simd-cmpleu-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpleu-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpleu-h-fail.l
new file mode 100644
index 00000000000..1bcab7179eb
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpleu-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpleu.h x32,x32,x32'
+.*: Error: illegal operands `cv.cmpleu.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpleu-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpleu-h-fail.s
new file mode 100644
index 00000000000..93b039a8f10
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpleu-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmpleu.h x32, x32, x32
+    cv.cmpleu.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpleu-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpleu-h-pass.d
new file mode 100644
index 00000000000..88510d9e822
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpleu-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpleu-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	4c00007b          	cv.cmpleu.h	zero,zero,zero
+   4:	4c1080fb          	cv.cmpleu.h	ra,ra,ra
+   8:	4c21017b          	cv.cmpleu.h	sp,sp,sp
+   c:	4c84047b          	cv.cmpleu.h	s0,s0,s0
+  10:	4d4a0a7b          	cv.cmpleu.h	s4,s4,s4
+  14:	4dff8ffb          	cv.cmpleu.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpleu-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpleu-h-pass.s
new file mode 100644
index 00000000000..ce120275cdf
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpleu-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmpleu.h x0, x0, x0
+    cv.cmpleu.h x1, x1, x1
+    cv.cmpleu.h x2, x2, x2
+    cv.cmpleu.h x8, x8, x8
+    cv.cmpleu.h x20, x20, x20
+    cv.cmpleu.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-b-fail.d
new file mode 100644
index 00000000000..3dbb3317678
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpleu-sc-b-fail.s
+#error_output: cv-simd-cmpleu-sc-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-b-fail.l
new file mode 100644
index 00000000000..5fde1fae238
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpleu.sc.b x32,x32,x32'
+.*: Error: illegal operands `cv.cmpleu.sc.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-b-fail.s
new file mode 100644
index 00000000000..b0eb2333f24
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmpleu.sc.b x32, x32, x32
+    cv.cmpleu.sc.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-b-pass.d
new file mode 100644
index 00000000000..25200479d35
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpleu-sc-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	4c00507b          	cv.cmpleu.sc.b	zero,zero,zero
+   4:	4c10d0fb          	cv.cmpleu.sc.b	ra,ra,ra
+   8:	4c21517b          	cv.cmpleu.sc.b	sp,sp,sp
+   c:	4c84547b          	cv.cmpleu.sc.b	s0,s0,s0
+  10:	4d4a5a7b          	cv.cmpleu.sc.b	s4,s4,s4
+  14:	4dffdffb          	cv.cmpleu.sc.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-b-pass.s
new file mode 100644
index 00000000000..3f2ecfd7e67
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmpleu.sc.b x0, x0, x0
+    cv.cmpleu.sc.b x1, x1, x1
+    cv.cmpleu.sc.b x2, x2, x2
+    cv.cmpleu.sc.b x8, x8, x8
+    cv.cmpleu.sc.b x20, x20, x20
+    cv.cmpleu.sc.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-h-fail.d
new file mode 100644
index 00000000000..9ddd9d42c7b
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpleu-sc-h-fail.s
+#error_output: cv-simd-cmpleu-sc-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-h-fail.l
new file mode 100644
index 00000000000..11438240a92
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpleu.sc.h x32,x32,x32'
+.*: Error: illegal operands `cv.cmpleu.sc.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-h-fail.s
new file mode 100644
index 00000000000..8265fb20add
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmpleu.sc.h x32, x32, x32
+    cv.cmpleu.sc.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-h-pass.d
new file mode 100644
index 00000000000..acbfa417945
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpleu-sc-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	4c00407b          	cv.cmpleu.sc.h	zero,zero,zero
+   4:	4c10c0fb          	cv.cmpleu.sc.h	ra,ra,ra
+   8:	4c21417b          	cv.cmpleu.sc.h	sp,sp,sp
+   c:	4c84447b          	cv.cmpleu.sc.h	s0,s0,s0
+  10:	4d4a4a7b          	cv.cmpleu.sc.h	s4,s4,s4
+  14:	4dffcffb          	cv.cmpleu.sc.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-h-pass.s
new file mode 100644
index 00000000000..3860ae1122e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sc-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmpleu.sc.h x0, x0, x0
+    cv.cmpleu.sc.h x1, x1, x1
+    cv.cmpleu.sc.h x2, x2, x2
+    cv.cmpleu.sc.h x8, x8, x8
+    cv.cmpleu.sc.h x20, x20, x20
+    cv.cmpleu.sc.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-b-fail.d
new file mode 100644
index 00000000000..81a56d4c797
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpleu-sci-b-fail.s
+#error_output: cv-simd-cmpleu-sci-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-b-fail.l
new file mode 100644
index 00000000000..589af59d74e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpleu.sci.b x32,x32,20'
+.*: Error: illegal operands `cv.cmpleu.sci.b x33,x33,20'
+.*: Error: immediate value must be 6-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 6-bit unsigned, 64 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-b-fail.s
new file mode 100644
index 00000000000..5efddc4e080
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.cmpleu.sci.b x32, x32, 20
+    cv.cmpleu.sci.b x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.cmpleu.sci.b x6, x7, -1
+    cv.cmpleu.sci.b x6, x7, 64
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-b-pass.d
new file mode 100644
index 00000000000..8a0ac6cbdfc
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-b-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpleu-sci-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	4ca0707b          	cv.cmpleu.sci.b	zero,zero,20
+   4:	4ca0f0fb          	cv.cmpleu.sci.b	ra,ra,20
+   8:	4ca1717b          	cv.cmpleu.sci.b	sp,sp,20
+   c:	4ca4747b          	cv.cmpleu.sci.b	s0,s0,20
+  10:	4caa7a7b          	cv.cmpleu.sci.b	s4,s4,20
+  14:	4caffffb          	cv.cmpleu.sci.b	t6,t6,20
+  18:	4c03f37b          	cv.cmpleu.sci.b	t1,t2,0
+  1c:	4ff3f37b          	cv.cmpleu.sci.b	t1,t2,63
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-b-pass.s
new file mode 100644
index 00000000000..a5c4b273c62
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-b-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.cmpleu.sci.b x0, x0, 20
+    cv.cmpleu.sci.b x1, x1, 20
+    cv.cmpleu.sci.b x2, x2, 20
+    cv.cmpleu.sci.b x8, x8, 20
+    cv.cmpleu.sci.b x20, x20, 20
+    cv.cmpleu.sci.b x31, x31, 20
+    #Immediate Values Test
+    cv.cmpleu.sci.b x6, x7, 0
+    cv.cmpleu.sci.b x6, x7, 63
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-h-fail.d
new file mode 100644
index 00000000000..34a81b5cd8a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpleu-sci-h-fail.s
+#error_output: cv-simd-cmpleu-sci-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-h-fail.l
new file mode 100644
index 00000000000..a7969bb4db2
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-h-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpleu.sci.h x32,x32,20'
+.*: Error: illegal operands `cv.cmpleu.sci.h x33,x33,20'
+.*: Error: immediate value must be 6-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 6-bit unsigned, 64 is out of range
\ No newline at end of file
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-h-fail.s
new file mode 100644
index 00000000000..a4dbd6fcb8f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-h-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.cmpleu.sci.h x32, x32, 20
+    cv.cmpleu.sci.h x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.cmpleu.sci.h x6, x7, -1
+    cv.cmpleu.sci.h x6, x7, 64
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-h-pass.d
new file mode 100644
index 00000000000..83ca67a305e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-h-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpleu-sci-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	4ca0607b          	cv.cmpleu.sci.h	zero,zero,20
+   4:	4ca0e0fb          	cv.cmpleu.sci.h	ra,ra,20
+   8:	4ca1617b          	cv.cmpleu.sci.h	sp,sp,20
+   c:	4ca4647b          	cv.cmpleu.sci.h	s0,s0,20
+  10:	4caa6a7b          	cv.cmpleu.sci.h	s4,s4,20
+  14:	4cafeffb          	cv.cmpleu.sci.h	t6,t6,20
+  18:	4c03e37b          	cv.cmpleu.sci.h	t1,t2,0
+  1c:	4ff3e37b          	cv.cmpleu.sci.h	t1,t2,63
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-h-pass.s
new file mode 100644
index 00000000000..a090b350010
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpleu-sci-h-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.cmpleu.sci.h x0, x0, 20
+    cv.cmpleu.sci.h x1, x1, 20
+    cv.cmpleu.sci.h x2, x2, 20
+    cv.cmpleu.sci.h x8, x8, 20
+    cv.cmpleu.sci.h x20, x20, 20
+    cv.cmpleu.sci.h x31, x31, 20
+    #Immediate Values Test
+    cv.cmpleu.sci.h x6, x7, 0
+    cv.cmpleu.sci.h x6, x7, 63
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmplt-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmplt-b-fail.d
new file mode 100644
index 00000000000..242b75786d6
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmplt-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmplt-b-fail.s
+#error_output: cv-simd-cmplt-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmplt-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmplt-b-fail.l
new file mode 100644
index 00000000000..0f98b08b92e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmplt-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmplt.b x32,x32,x32'
+.*: Error: illegal operands `cv.cmplt.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmplt-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmplt-b-fail.s
new file mode 100644
index 00000000000..0c67c18560f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmplt-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmplt.b x32, x32, x32
+    cv.cmplt.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmplt-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmplt-b-pass.d
new file mode 100644
index 00000000000..90d4f22903e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmplt-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmplt-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	2400107b          	cv.cmplt.b	zero,zero,zero
+   4:	241090fb          	cv.cmplt.b	ra,ra,ra
+   8:	2421117b          	cv.cmplt.b	sp,sp,sp
+   c:	2484147b          	cv.cmplt.b	s0,s0,s0
+  10:	254a1a7b          	cv.cmplt.b	s4,s4,s4
+  14:	25ff9ffb          	cv.cmplt.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmplt-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmplt-b-pass.s
new file mode 100644
index 00000000000..a511a83ff14
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmplt-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmplt.b x0, x0, x0
+    cv.cmplt.b x1, x1, x1
+    cv.cmplt.b x2, x2, x2
+    cv.cmplt.b x8, x8, x8
+    cv.cmplt.b x20, x20, x20
+    cv.cmplt.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmplt-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmplt-h-fail.d
new file mode 100644
index 00000000000..fddea37a26f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmplt-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmplt-h-fail.s
+#error_output: cv-simd-cmplt-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmplt-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmplt-h-fail.l
new file mode 100644
index 00000000000..b2c5298e1e3
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmplt-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmplt.h x32,x32,x32'
+.*: Error: illegal operands `cv.cmplt.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmplt-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmplt-h-fail.s
new file mode 100644
index 00000000000..3d47de30ab4
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmplt-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmplt.h x32, x32, x32
+    cv.cmplt.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmplt-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmplt-h-pass.d
new file mode 100644
index 00000000000..42b980e670e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmplt-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmplt-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	2400007b          	cv.cmplt.h	zero,zero,zero
+   4:	241080fb          	cv.cmplt.h	ra,ra,ra
+   8:	2421017b          	cv.cmplt.h	sp,sp,sp
+   c:	2484047b          	cv.cmplt.h	s0,s0,s0
+  10:	254a0a7b          	cv.cmplt.h	s4,s4,s4
+  14:	25ff8ffb          	cv.cmplt.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmplt-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmplt-h-pass.s
new file mode 100644
index 00000000000..85bcb8970a4
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmplt-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmplt.h x0, x0, x0
+    cv.cmplt.h x1, x1, x1
+    cv.cmplt.h x2, x2, x2
+    cv.cmplt.h x8, x8, x8
+    cv.cmplt.h x20, x20, x20
+    cv.cmplt.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmplt-sc-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmplt-sc-b-fail.d
new file mode 100644
index 00000000000..20491b47b11
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmplt-sc-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmplt-sc-b-fail.s
+#error_output: cv-simd-cmplt-sc-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmplt-sc-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmplt-sc-b-fail.l
new file mode 100644
index 00000000000..bc8340f218b
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmplt-sc-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmplt.sc.b x32,x32,x32'
+.*: Error: illegal operands `cv.cmplt.sc.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmplt-sc-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmplt-sc-b-fail.s
new file mode 100644
index 00000000000..2fbc6c49ecc
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmplt-sc-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmplt.sc.b x32, x32, x32
+    cv.cmplt.sc.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmplt-sc-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmplt-sc-b-pass.d
new file mode 100644
index 00000000000..58dc2cc2458
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmplt-sc-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmplt-sc-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	2400507b          	cv.cmplt.sc.b	zero,zero,zero
+   4:	2410d0fb          	cv.cmplt.sc.b	ra,ra,ra
+   8:	2421517b          	cv.cmplt.sc.b	sp,sp,sp
+   c:	2484547b          	cv.cmplt.sc.b	s0,s0,s0
+  10:	254a5a7b          	cv.cmplt.sc.b	s4,s4,s4
+  14:	25ffdffb          	cv.cmplt.sc.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmplt-sc-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmplt-sc-b-pass.s
new file mode 100644
index 00000000000..0909cd18619
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmplt-sc-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmplt.sc.b x0, x0, x0
+    cv.cmplt.sc.b x1, x1, x1
+    cv.cmplt.sc.b x2, x2, x2
+    cv.cmplt.sc.b x8, x8, x8
+    cv.cmplt.sc.b x20, x20, x20
+    cv.cmplt.sc.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmplt-sc-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmplt-sc-h-fail.d
new file mode 100644
index 00000000000..9aa9ab6b6ee
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmplt-sc-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmplt-sc-h-fail.s
+#error_output: cv-simd-cmplt-sc-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmplt-sc-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmplt-sc-h-fail.l
new file mode 100644
index 00000000000..9d7c9e05479
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmplt-sc-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmplt.sc.h x32,x32,x32'
+.*: Error: illegal operands `cv.cmplt.sc.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmplt-sc-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmplt-sc-h-fail.s
new file mode 100644
index 00000000000..ffc1d9f5b98
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmplt-sc-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmplt.sc.h x32, x32, x32
+    cv.cmplt.sc.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmplt-sc-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmplt-sc-h-pass.d
new file mode 100644
index 00000000000..c3a5de547e3
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmplt-sc-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmplt-sc-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	2400407b          	cv.cmplt.sc.h	zero,zero,zero
+   4:	2410c0fb          	cv.cmplt.sc.h	ra,ra,ra
+   8:	2421417b          	cv.cmplt.sc.h	sp,sp,sp
+   c:	2484447b          	cv.cmplt.sc.h	s0,s0,s0
+  10:	254a4a7b          	cv.cmplt.sc.h	s4,s4,s4
+  14:	25ffcffb          	cv.cmplt.sc.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmplt-sc-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmplt-sc-h-pass.s
new file mode 100644
index 00000000000..4278bf94e05
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmplt-sc-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmplt.sc.h x0, x0, x0
+    cv.cmplt.sc.h x1, x1, x1
+    cv.cmplt.sc.h x2, x2, x2
+    cv.cmplt.sc.h x8, x8, x8
+    cv.cmplt.sc.h x20, x20, x20
+    cv.cmplt.sc.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmplt-sci-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmplt-sci-b-fail.d
new file mode 100644
index 00000000000..f678f979ab3
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmplt-sci-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmplt-sci-b-fail.s
+#error_output: cv-simd-cmplt-sci-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmplt-sci-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmplt-sci-b-fail.l
new file mode 100644
index 00000000000..2d5cdad6b80
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmplt-sci-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmplt.sci.b x32,x32,20'
+.*: Error: illegal operands `cv.cmplt.sci.b x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmplt-sci-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmplt-sci-b-fail.s
new file mode 100644
index 00000000000..e1fb4dd0887
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmplt-sci-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.cmplt.sci.b x32, x32, 20
+    cv.cmplt.sci.b x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.cmplt.sci.b x6, x7, -33
+    cv.cmplt.sci.b x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmplt-sci-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmplt-sci-b-pass.d
new file mode 100644
index 00000000000..7ff96089553
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmplt-sci-b-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmplt-sci-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	24a0707b          	cv.cmplt.sci.b	zero,zero,20
+   4:	24a0f0fb          	cv.cmplt.sci.b	ra,ra,20
+   8:	24a1717b          	cv.cmplt.sci.b	sp,sp,20
+   c:	24a4747b          	cv.cmplt.sci.b	s0,s0,20
+  10:	24aa7a7b          	cv.cmplt.sci.b	s4,s4,20
+  14:	24affffb          	cv.cmplt.sci.b	t6,t6,20
+  18:	2503f37b          	cv.cmplt.sci.b	t1,t2,-32
+  1c:	2403f37b          	cv.cmplt.sci.b	t1,t2,0
+  20:	26f3f37b          	cv.cmplt.sci.b	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmplt-sci-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmplt-sci-b-pass.s
new file mode 100644
index 00000000000..83bcbda6b9a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmplt-sci-b-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.cmplt.sci.b x0, x0, 20
+    cv.cmplt.sci.b x1, x1, 20
+    cv.cmplt.sci.b x2, x2, 20
+    cv.cmplt.sci.b x8, x8, 20
+    cv.cmplt.sci.b x20, x20, 20
+    cv.cmplt.sci.b x31, x31, 20
+    #Immediate Values Test
+    cv.cmplt.sci.b x6, x7, -32
+    cv.cmplt.sci.b x6, x7, 0
+    cv.cmplt.sci.b x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmplt-sci-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmplt-sci-h-fail.d
new file mode 100644
index 00000000000..094b86805e4
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmplt-sci-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmplt-sci-h-fail.s
+#error_output: cv-simd-cmplt-sci-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmplt-sci-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmplt-sci-h-fail.l
new file mode 100644
index 00000000000..6be7bcaf461
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmplt-sci-h-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmplt.sci.h x32,x32,20'
+.*: Error: illegal operands `cv.cmplt.sci.h x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmplt-sci-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmplt-sci-h-fail.s
new file mode 100644
index 00000000000..5ce5511612c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmplt-sci-h-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.cmplt.sci.h x32, x32, 20
+    cv.cmplt.sci.h x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.cmplt.sci.h x6, x7, -33
+    cv.cmplt.sci.h x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmplt-sci-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmplt-sci-h-pass.d
new file mode 100644
index 00000000000..74831942dc1
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmplt-sci-h-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmplt-sci-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	24a0607b          	cv.cmplt.sci.h	zero,zero,20
+   4:	24a0e0fb          	cv.cmplt.sci.h	ra,ra,20
+   8:	24a1617b          	cv.cmplt.sci.h	sp,sp,20
+   c:	24a4647b          	cv.cmplt.sci.h	s0,s0,20
+  10:	24aa6a7b          	cv.cmplt.sci.h	s4,s4,20
+  14:	24afeffb          	cv.cmplt.sci.h	t6,t6,20
+  18:	2503e37b          	cv.cmplt.sci.h	t1,t2,-32
+  1c:	2403e37b          	cv.cmplt.sci.h	t1,t2,0
+  20:	26f3e37b          	cv.cmplt.sci.h	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmplt-sci-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmplt-sci-h-pass.s
new file mode 100644
index 00000000000..fd1d4e4a20a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmplt-sci-h-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.cmplt.sci.h x0, x0, 20
+    cv.cmplt.sci.h x1, x1, 20
+    cv.cmplt.sci.h x2, x2, 20
+    cv.cmplt.sci.h x8, x8, 20
+    cv.cmplt.sci.h x20, x20, 20
+    cv.cmplt.sci.h x31, x31, 20
+    #Immediate Values Test
+    cv.cmplt.sci.h x6, x7, -32
+    cv.cmplt.sci.h x6, x7, 0
+    cv.cmplt.sci.h x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpltu-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpltu-b-fail.d
new file mode 100644
index 00000000000..0050c0dfcbc
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpltu-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpltu-b-fail.s
+#error_output: cv-simd-cmpltu-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpltu-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpltu-b-fail.l
new file mode 100644
index 00000000000..199b24d2c5e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpltu-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpltu.b x32,x32,x32'
+.*: Error: illegal operands `cv.cmpltu.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpltu-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpltu-b-fail.s
new file mode 100644
index 00000000000..b2c0b184925
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpltu-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmpltu.b x32, x32, x32
+    cv.cmpltu.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpltu-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpltu-b-pass.d
new file mode 100644
index 00000000000..ae5e5d804c4
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpltu-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpltu-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	4400107b          	cv.cmpltu.b	zero,zero,zero
+   4:	441090fb          	cv.cmpltu.b	ra,ra,ra
+   8:	4421117b          	cv.cmpltu.b	sp,sp,sp
+   c:	4484147b          	cv.cmpltu.b	s0,s0,s0
+  10:	454a1a7b          	cv.cmpltu.b	s4,s4,s4
+  14:	45ff9ffb          	cv.cmpltu.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpltu-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpltu-b-pass.s
new file mode 100644
index 00000000000..c8478657052
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpltu-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmpltu.b x0, x0, x0
+    cv.cmpltu.b x1, x1, x1
+    cv.cmpltu.b x2, x2, x2
+    cv.cmpltu.b x8, x8, x8
+    cv.cmpltu.b x20, x20, x20
+    cv.cmpltu.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpltu-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpltu-h-fail.d
new file mode 100644
index 00000000000..b37c94721ee
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpltu-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpltu-h-fail.s
+#error_output: cv-simd-cmpltu-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpltu-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpltu-h-fail.l
new file mode 100644
index 00000000000..7ec17d16181
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpltu-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpltu.h x32,x32,x32'
+.*: Error: illegal operands `cv.cmpltu.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpltu-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpltu-h-fail.s
new file mode 100644
index 00000000000..4153184c5fb
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpltu-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmpltu.h x32, x32, x32
+    cv.cmpltu.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpltu-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpltu-h-pass.d
new file mode 100644
index 00000000000..4c15ec5cc45
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpltu-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpltu-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	4400007b          	cv.cmpltu.h	zero,zero,zero
+   4:	441080fb          	cv.cmpltu.h	ra,ra,ra
+   8:	4421017b          	cv.cmpltu.h	sp,sp,sp
+   c:	4484047b          	cv.cmpltu.h	s0,s0,s0
+  10:	454a0a7b          	cv.cmpltu.h	s4,s4,s4
+  14:	45ff8ffb          	cv.cmpltu.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpltu-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpltu-h-pass.s
new file mode 100644
index 00000000000..de032838e09
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpltu-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmpltu.h x0, x0, x0
+    cv.cmpltu.h x1, x1, x1
+    cv.cmpltu.h x2, x2, x2
+    cv.cmpltu.h x8, x8, x8
+    cv.cmpltu.h x20, x20, x20
+    cv.cmpltu.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-b-fail.d
new file mode 100644
index 00000000000..50bab346eec
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpltu-sc-b-fail.s
+#error_output: cv-simd-cmpltu-sc-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-b-fail.l
new file mode 100644
index 00000000000..0b4c9992e7f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpltu.sc.b x32,x32,x32'
+.*: Error: illegal operands `cv.cmpltu.sc.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-b-fail.s
new file mode 100644
index 00000000000..6541d12e631
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmpltu.sc.b x32, x32, x32
+    cv.cmpltu.sc.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-b-pass.d
new file mode 100644
index 00000000000..3aa01db8faa
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpltu-sc-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	4400507b          	cv.cmpltu.sc.b	zero,zero,zero
+   4:	4410d0fb          	cv.cmpltu.sc.b	ra,ra,ra
+   8:	4421517b          	cv.cmpltu.sc.b	sp,sp,sp
+   c:	4484547b          	cv.cmpltu.sc.b	s0,s0,s0
+  10:	454a5a7b          	cv.cmpltu.sc.b	s4,s4,s4
+  14:	45ffdffb          	cv.cmpltu.sc.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-b-pass.s
new file mode 100644
index 00000000000..9c2647130e6
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmpltu.sc.b x0, x0, x0
+    cv.cmpltu.sc.b x1, x1, x1
+    cv.cmpltu.sc.b x2, x2, x2
+    cv.cmpltu.sc.b x8, x8, x8
+    cv.cmpltu.sc.b x20, x20, x20
+    cv.cmpltu.sc.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-h-fail.d
new file mode 100644
index 00000000000..8422ac02345
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpltu-sc-h-fail.s
+#error_output: cv-simd-cmpltu-sc-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-h-fail.l
new file mode 100644
index 00000000000..aa73e2dd5e1
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpltu.sc.h x32,x32,x32'
+.*: Error: illegal operands `cv.cmpltu.sc.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-h-fail.s
new file mode 100644
index 00000000000..af03693e229
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmpltu.sc.h x32, x32, x32
+    cv.cmpltu.sc.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-h-pass.d
new file mode 100644
index 00000000000..6437841a4fa
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpltu-sc-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	4400407b          	cv.cmpltu.sc.h	zero,zero,zero
+   4:	4410c0fb          	cv.cmpltu.sc.h	ra,ra,ra
+   8:	4421417b          	cv.cmpltu.sc.h	sp,sp,sp
+   c:	4484447b          	cv.cmpltu.sc.h	s0,s0,s0
+  10:	454a4a7b          	cv.cmpltu.sc.h	s4,s4,s4
+  14:	45ffcffb          	cv.cmpltu.sc.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-h-pass.s
new file mode 100644
index 00000000000..9b658a00bcd
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sc-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmpltu.sc.h x0, x0, x0
+    cv.cmpltu.sc.h x1, x1, x1
+    cv.cmpltu.sc.h x2, x2, x2
+    cv.cmpltu.sc.h x8, x8, x8
+    cv.cmpltu.sc.h x20, x20, x20
+    cv.cmpltu.sc.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-b-fail.d
new file mode 100644
index 00000000000..ed3751de479
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpltu-sci-b-fail.s
+#error_output: cv-simd-cmpltu-sci-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-b-fail.l
new file mode 100644
index 00000000000..810a82147fa
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpltu.sci.b x32,x32,20'
+.*: Error: illegal operands `cv.cmpltu.sci.b x33,x33,20'
+.*: Error: immediate value must be 6-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 6-bit unsigned, 64 is out of range
\ No newline at end of file
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-b-fail.s
new file mode 100644
index 00000000000..54736a9389f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.cmpltu.sci.b x32, x32, 20
+    cv.cmpltu.sci.b x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.cmpltu.sci.b x6, x7, -1
+    cv.cmpltu.sci.b x6, x7, 64
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-b-pass.d
new file mode 100644
index 00000000000..2ff3f7dc5fa
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-b-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpltu-sci-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	44a0707b          	cv.cmpltu.sci.b	zero,zero,20
+   4:	44a0f0fb          	cv.cmpltu.sci.b	ra,ra,20
+   8:	44a1717b          	cv.cmpltu.sci.b	sp,sp,20
+   c:	44a4747b          	cv.cmpltu.sci.b	s0,s0,20
+  10:	44aa7a7b          	cv.cmpltu.sci.b	s4,s4,20
+  14:	44affffb          	cv.cmpltu.sci.b	t6,t6,20
+  18:	4403f37b          	cv.cmpltu.sci.b	t1,t2,0
+  1c:	47f3f37b          	cv.cmpltu.sci.b	t1,t2,63
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-b-pass.s
new file mode 100644
index 00000000000..b72b4ca49ff
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-b-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.cmpltu.sci.b x0, x0, 20
+    cv.cmpltu.sci.b x1, x1, 20
+    cv.cmpltu.sci.b x2, x2, 20
+    cv.cmpltu.sci.b x8, x8, 20
+    cv.cmpltu.sci.b x20, x20, 20
+    cv.cmpltu.sci.b x31, x31, 20
+    #Immediate Values Test
+    cv.cmpltu.sci.b x6, x7, 0
+    cv.cmpltu.sci.b x6, x7, 63
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-h-fail.d
new file mode 100644
index 00000000000..4b4a7bee880
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpltu-sci-h-fail.s
+#error_output: cv-simd-cmpltu-sci-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-h-fail.l
new file mode 100644
index 00000000000..73a451bfccc
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-h-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpltu.sci.h x32,x32,20'
+.*: Error: illegal operands `cv.cmpltu.sci.h x33,x33,20'
+.*: Error: immediate value must be 6-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 6-bit unsigned, 64 is out of range
\ No newline at end of file
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-h-fail.s
new file mode 100644
index 00000000000..d32c317e769
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-h-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.cmpltu.sci.h x32, x32, 20
+    cv.cmpltu.sci.h x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.cmpltu.sci.h x6, x7, -1
+    cv.cmpltu.sci.h x6, x7, 64
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-h-pass.d
new file mode 100644
index 00000000000..5c59dce3e54
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-h-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpltu-sci-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	44a0607b          	cv.cmpltu.sci.h	zero,zero,20
+   4:	44a0e0fb          	cv.cmpltu.sci.h	ra,ra,20
+   8:	44a1617b          	cv.cmpltu.sci.h	sp,sp,20
+   c:	44a4647b          	cv.cmpltu.sci.h	s0,s0,20
+  10:	44aa6a7b          	cv.cmpltu.sci.h	s4,s4,20
+  14:	44afeffb          	cv.cmpltu.sci.h	t6,t6,20
+  18:	4403e37b          	cv.cmpltu.sci.h	t1,t2,0
+  1c:	47f3e37b          	cv.cmpltu.sci.h	t1,t2,63
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-h-pass.s
new file mode 100644
index 00000000000..092aead3d03
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpltu-sci-h-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.cmpltu.sci.h x0, x0, 20
+    cv.cmpltu.sci.h x1, x1, 20
+    cv.cmpltu.sci.h x2, x2, 20
+    cv.cmpltu.sci.h x8, x8, 20
+    cv.cmpltu.sci.h x20, x20, 20
+    cv.cmpltu.sci.h x31, x31, 20
+    #Immediate Values Test
+    cv.cmpltu.sci.h x6, x7, 0
+    cv.cmpltu.sci.h x6, x7, 63
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpne-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpne-b-fail.d
new file mode 100644
index 00000000000..51af5dec963
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpne-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpne-b-fail.s
+#error_output: cv-simd-cmpne-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpne-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpne-b-fail.l
new file mode 100644
index 00000000000..17dd8aad0d5
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpne-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpne.b x32,x32,x32'
+.*: Error: illegal operands `cv.cmpne.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpne-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpne-b-fail.s
new file mode 100644
index 00000000000..996216864f7
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpne-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmpne.b x32, x32, x32
+    cv.cmpne.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpne-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpne-b-pass.d
new file mode 100644
index 00000000000..8d034c7e505
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpne-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpne-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	0c00107b          	cv.cmpne.b	zero,zero,zero
+   4:	0c1090fb          	cv.cmpne.b	ra,ra,ra
+   8:	0c21117b          	cv.cmpne.b	sp,sp,sp
+   c:	0c84147b          	cv.cmpne.b	s0,s0,s0
+  10:	0d4a1a7b          	cv.cmpne.b	s4,s4,s4
+  14:	0dff9ffb          	cv.cmpne.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpne-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpne-b-pass.s
new file mode 100644
index 00000000000..cec97fd1411
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpne-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmpne.b x0, x0, x0
+    cv.cmpne.b x1, x1, x1
+    cv.cmpne.b x2, x2, x2
+    cv.cmpne.b x8, x8, x8
+    cv.cmpne.b x20, x20, x20
+    cv.cmpne.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpne-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpne-h-fail.d
new file mode 100644
index 00000000000..624ccd8aaaa
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpne-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpne-h-fail.s
+#error_output: cv-simd-cmpne-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpne-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpne-h-fail.l
new file mode 100644
index 00000000000..0b53e8f593c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpne-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpne.h x32,x32,x32'
+.*: Error: illegal operands `cv.cmpne.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpne-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpne-h-fail.s
new file mode 100644
index 00000000000..530f083631f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpne-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmpne.h x32, x32, x32
+    cv.cmpne.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpne-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpne-h-pass.d
new file mode 100644
index 00000000000..029e561a41e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpne-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpne-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	0c00007b          	cv.cmpne.h	zero,zero,zero
+   4:	0c1080fb          	cv.cmpne.h	ra,ra,ra
+   8:	0c21017b          	cv.cmpne.h	sp,sp,sp
+   c:	0c84047b          	cv.cmpne.h	s0,s0,s0
+  10:	0d4a0a7b          	cv.cmpne.h	s4,s4,s4
+  14:	0dff8ffb          	cv.cmpne.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpne-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpne-h-pass.s
new file mode 100644
index 00000000000..4394e5dc22c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpne-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmpne.h x0, x0, x0
+    cv.cmpne.h x1, x1, x1
+    cv.cmpne.h x2, x2, x2
+    cv.cmpne.h x8, x8, x8
+    cv.cmpne.h x20, x20, x20
+    cv.cmpne.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpne-sc-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpne-sc-b-fail.d
new file mode 100644
index 00000000000..aff55fbae53
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpne-sc-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpne-sc-b-fail.s
+#error_output: cv-simd-cmpne-sc-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpne-sc-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpne-sc-b-fail.l
new file mode 100644
index 00000000000..24afd896558
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpne-sc-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpne.sc.b x32,x32,x32'
+.*: Error: illegal operands `cv.cmpne.sc.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpne-sc-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpne-sc-b-fail.s
new file mode 100644
index 00000000000..3aaa6d53445
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpne-sc-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmpne.sc.b x32, x32, x32
+    cv.cmpne.sc.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpne-sc-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpne-sc-b-pass.d
new file mode 100644
index 00000000000..503ca16c0e5
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpne-sc-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpne-sc-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	0c00507b          	cv.cmpne.sc.b	zero,zero,zero
+   4:	0c10d0fb          	cv.cmpne.sc.b	ra,ra,ra
+   8:	0c21517b          	cv.cmpne.sc.b	sp,sp,sp
+   c:	0c84547b          	cv.cmpne.sc.b	s0,s0,s0
+  10:	0d4a5a7b          	cv.cmpne.sc.b	s4,s4,s4
+  14:	0dffdffb          	cv.cmpne.sc.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpne-sc-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpne-sc-b-pass.s
new file mode 100644
index 00000000000..d08bd7b5d59
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpne-sc-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmpne.sc.b x0, x0, x0
+    cv.cmpne.sc.b x1, x1, x1
+    cv.cmpne.sc.b x2, x2, x2
+    cv.cmpne.sc.b x8, x8, x8
+    cv.cmpne.sc.b x20, x20, x20
+    cv.cmpne.sc.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpne-sc-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpne-sc-h-fail.d
new file mode 100644
index 00000000000..fc715061d72
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpne-sc-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpne-sc-h-fail.s
+#error_output: cv-simd-cmpne-sc-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpne-sc-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpne-sc-h-fail.l
new file mode 100644
index 00000000000..34854ac8eee
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpne-sc-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpne.sc.h x32,x32,x32'
+.*: Error: illegal operands `cv.cmpne.sc.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpne-sc-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpne-sc-h-fail.s
new file mode 100644
index 00000000000..f1c84c3c95f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpne-sc-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cmpne.sc.h x32, x32, x32
+    cv.cmpne.sc.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpne-sc-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpne-sc-h-pass.d
new file mode 100644
index 00000000000..5d36594c891
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpne-sc-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpne-sc-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	0c00407b          	cv.cmpne.sc.h	zero,zero,zero
+   4:	0c10c0fb          	cv.cmpne.sc.h	ra,ra,ra
+   8:	0c21417b          	cv.cmpne.sc.h	sp,sp,sp
+   c:	0c84447b          	cv.cmpne.sc.h	s0,s0,s0
+  10:	0d4a4a7b          	cv.cmpne.sc.h	s4,s4,s4
+  14:	0dffcffb          	cv.cmpne.sc.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpne-sc-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpne-sc-h-pass.s
new file mode 100644
index 00000000000..f699512ba07
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpne-sc-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cmpne.sc.h x0, x0, x0
+    cv.cmpne.sc.h x1, x1, x1
+    cv.cmpne.sc.h x2, x2, x2
+    cv.cmpne.sc.h x8, x8, x8
+    cv.cmpne.sc.h x20, x20, x20
+    cv.cmpne.sc.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpne-sci-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpne-sci-b-fail.d
new file mode 100644
index 00000000000..83e37b66793
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpne-sci-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpne-sci-b-fail.s
+#error_output: cv-simd-cmpne-sci-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpne-sci-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpne-sci-b-fail.l
new file mode 100644
index 00000000000..9ad1b198f54
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpne-sci-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpne.sci.b x32,x32,20'
+.*: Error: illegal operands `cv.cmpne.sci.b x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpne-sci-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpne-sci-b-fail.s
new file mode 100644
index 00000000000..bd2e550e544
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpne-sci-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.cmpne.sci.b x32, x32, 20
+    cv.cmpne.sci.b x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.cmpne.sci.b x6, x7, -33
+    cv.cmpne.sci.b x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpne-sci-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpne-sci-b-pass.d
new file mode 100644
index 00000000000..0c20249d25e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpne-sci-b-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpne-sci-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	0ca0707b          	cv.cmpne.sci.b	zero,zero,20
+   4:	0ca0f0fb          	cv.cmpne.sci.b	ra,ra,20
+   8:	0ca1717b          	cv.cmpne.sci.b	sp,sp,20
+   c:	0ca4747b          	cv.cmpne.sci.b	s0,s0,20
+  10:	0caa7a7b          	cv.cmpne.sci.b	s4,s4,20
+  14:	0caffffb          	cv.cmpne.sci.b	t6,t6,20
+  18:	0d03f37b          	cv.cmpne.sci.b	t1,t2,-32
+  1c:	0c03f37b          	cv.cmpne.sci.b	t1,t2,0
+  20:	0ef3f37b          	cv.cmpne.sci.b	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpne-sci-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpne-sci-b-pass.s
new file mode 100644
index 00000000000..465a42d3c79
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpne-sci-b-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.cmpne.sci.b x0, x0, 20
+    cv.cmpne.sci.b x1, x1, 20
+    cv.cmpne.sci.b x2, x2, 20
+    cv.cmpne.sci.b x8, x8, 20
+    cv.cmpne.sci.b x20, x20, 20
+    cv.cmpne.sci.b x31, x31, 20
+    #Immediate Values Test
+    cv.cmpne.sci.b x6, x7, -32
+    cv.cmpne.sci.b x6, x7, 0
+    cv.cmpne.sci.b x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpne-sci-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-cmpne-sci-h-fail.d
new file mode 100644
index 00000000000..0a2f50e59c4
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpne-sci-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpne-sci-h-fail.s
+#error_output: cv-simd-cmpne-sci-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpne-sci-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-cmpne-sci-h-fail.l
new file mode 100644
index 00000000000..eba861843c8
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpne-sci-h-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cmpne.sci.h x32,x32,20'
+.*: Error: illegal operands `cv.cmpne.sci.h x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpne-sci-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-cmpne-sci-h-fail.s
new file mode 100644
index 00000000000..10b9d4d8aa8
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpne-sci-h-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.cmpne.sci.h x32, x32, 20
+    cv.cmpne.sci.h x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.cmpne.sci.h x6, x7, -33
+    cv.cmpne.sci.h x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpne-sci-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-cmpne-sci-h-pass.d
new file mode 100644
index 00000000000..19a3e4cfe73
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpne-sci-h-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cmpne-sci-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	0ca0607b          	cv.cmpne.sci.h	zero,zero,20
+   4:	0ca0e0fb          	cv.cmpne.sci.h	ra,ra,20
+   8:	0ca1617b          	cv.cmpne.sci.h	sp,sp,20
+   c:	0ca4647b          	cv.cmpne.sci.h	s0,s0,20
+  10:	0caa6a7b          	cv.cmpne.sci.h	s4,s4,20
+  14:	0cafeffb          	cv.cmpne.sci.h	t6,t6,20
+  18:	0d03e37b          	cv.cmpne.sci.h	t1,t2,-32
+  1c:	0c03e37b          	cv.cmpne.sci.h	t1,t2,0
+  20:	0ef3e37b          	cv.cmpne.sci.h	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cmpne-sci-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-cmpne-sci-h-pass.s
new file mode 100644
index 00000000000..93cdf3af6cb
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cmpne-sci-h-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.cmpne.sci.h x0, x0, 20
+    cv.cmpne.sci.h x1, x1, 20
+    cv.cmpne.sci.h x2, x2, 20
+    cv.cmpne.sci.h x8, x8, 20
+    cv.cmpne.sci.h x20, x20, 20
+    cv.cmpne.sci.h x31, x31, 20
+    #Immediate Values Test
+    cv.cmpne.sci.h x6, x7, -32
+    cv.cmpne.sci.h x6, x7, 0
+    cv.cmpne.sci.h x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxconj-fail.d b/gas/testsuite/gas/riscv/cv-simd-cplxconj-fail.d
new file mode 100644
index 00000000000..a0605a09309
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxconj-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cplxconj-fail.s
+#error_output: cv-simd-cplxconj-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxconj-fail.l b/gas/testsuite/gas/riscv/cv-simd-cplxconj-fail.l
new file mode 100644
index 00000000000..ed0844fae23
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxconj-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cplxconj x32,x32'
+.*: Error: illegal operands `cv.cplxconj x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxconj-fail.s b/gas/testsuite/gas/riscv/cv-simd-cplxconj-fail.s
new file mode 100644
index 00000000000..186e85f8ea0
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxconj-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cplxconj x32, x32
+    cv.cplxconj x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxconj-pass.d b/gas/testsuite/gas/riscv/cv-simd-cplxconj-pass.d
new file mode 100644
index 00000000000..c380f769cf8
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxconj-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cplxconj-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	5c00007b          	cv.cplxconj	zero,zero
+   4:	5c0080fb          	cv.cplxconj	ra,ra
+   8:	5c01017b          	cv.cplxconj	sp,sp
+   c:	5c04047b          	cv.cplxconj	s0,s0
+  10:	5c0a0a7b          	cv.cplxconj	s4,s4
+  14:	5c0f8ffb          	cv.cplxconj	t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxconj-pass.s b/gas/testsuite/gas/riscv/cv-simd-cplxconj-pass.s
new file mode 100644
index 00000000000..7c1fc017ef7
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxconj-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cplxconj x0, x0
+    cv.cplxconj x1, x1
+    cv.cplxconj x2, x2
+    cv.cplxconj x8, x8
+    cv.cplxconj x20, x20
+    cv.cplxconj x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div2-fail.d b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div2-fail.d
new file mode 100644
index 00000000000..7fb7a62b8a0
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div2-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cplxmul-i-div2-fail.s
+#error_output: cv-simd-cplxmul-i-div2-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div2-fail.l b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div2-fail.l
new file mode 100644
index 00000000000..9af5157824d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div2-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cplxmul.i.div2 x32,x32,x32'
+.*: Error: illegal operands `cv.cplxmul.i.div2 x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div2-fail.s b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div2-fail.s
new file mode 100644
index 00000000000..cdd5b8f1379
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div2-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cplxmul.i.div2 x32, x32, x32
+    cv.cplxmul.i.div2 x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div2-pass.d b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div2-pass.d
new file mode 100644
index 00000000000..582b2c63c1e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div2-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cplxmul-i-div2-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	5600207b          	cv.cplxmul.i.div2	zero,zero,zero
+   4:	5610a0fb          	cv.cplxmul.i.div2	ra,ra,ra
+   8:	5621217b          	cv.cplxmul.i.div2	sp,sp,sp
+   c:	5684247b          	cv.cplxmul.i.div2	s0,s0,s0
+  10:	574a2a7b          	cv.cplxmul.i.div2	s4,s4,s4
+  14:	57ffaffb          	cv.cplxmul.i.div2	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div2-pass.s b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div2-pass.s
new file mode 100644
index 00000000000..c90292dbdd9
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div2-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cplxmul.i.div2 x0, x0, x0
+    cv.cplxmul.i.div2 x1, x1, x1
+    cv.cplxmul.i.div2 x2, x2, x2
+    cv.cplxmul.i.div2 x8, x8, x8
+    cv.cplxmul.i.div2 x20, x20, x20
+    cv.cplxmul.i.div2 x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div4-fail.d b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div4-fail.d
new file mode 100644
index 00000000000..e9b9062f17e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div4-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cplxmul-i-div4-fail.s
+#error_output: cv-simd-cplxmul-i-div4-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div4-fail.l b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div4-fail.l
new file mode 100644
index 00000000000..c3efbe053eb
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div4-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cplxmul.i.div4 x32,x32,x32'
+.*: Error: illegal operands `cv.cplxmul.i.div4 x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div4-fail.s b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div4-fail.s
new file mode 100644
index 00000000000..e5464864280
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div4-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cplxmul.i.div4 x32, x32, x32
+    cv.cplxmul.i.div4 x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div4-pass.d b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div4-pass.d
new file mode 100644
index 00000000000..1091785e951
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div4-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cplxmul-i-div4-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	5600407b          	cv.cplxmul.i.div4	zero,zero,zero
+   4:	5610c0fb          	cv.cplxmul.i.div4	ra,ra,ra
+   8:	5621417b          	cv.cplxmul.i.div4	sp,sp,sp
+   c:	5684447b          	cv.cplxmul.i.div4	s0,s0,s0
+  10:	574a4a7b          	cv.cplxmul.i.div4	s4,s4,s4
+  14:	57ffcffb          	cv.cplxmul.i.div4	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div4-pass.s b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div4-pass.s
new file mode 100644
index 00000000000..95c840436b1
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div4-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cplxmul.i.div4 x0, x0, x0
+    cv.cplxmul.i.div4 x1, x1, x1
+    cv.cplxmul.i.div4 x2, x2, x2
+    cv.cplxmul.i.div4 x8, x8, x8
+    cv.cplxmul.i.div4 x20, x20, x20
+    cv.cplxmul.i.div4 x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div8-fail.d b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div8-fail.d
new file mode 100644
index 00000000000..a5959794dfe
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div8-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cplxmul-i-div8-fail.s
+#error_output: cv-simd-cplxmul-i-div8-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div8-fail.l b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div8-fail.l
new file mode 100644
index 00000000000..cc52645bf80
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div8-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cplxmul.i.div8 x32,x32,x32'
+.*: Error: illegal operands `cv.cplxmul.i.div8 x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div8-fail.s b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div8-fail.s
new file mode 100644
index 00000000000..04b7b4688d6
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div8-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cplxmul.i.div8 x32, x32, x32
+    cv.cplxmul.i.div8 x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div8-pass.d b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div8-pass.d
new file mode 100644
index 00000000000..c81a1dc7c8e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div8-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cplxmul-i-div8-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	5600607b          	cv.cplxmul.i.div8	zero,zero,zero
+   4:	5610e0fb          	cv.cplxmul.i.div8	ra,ra,ra
+   8:	5621617b          	cv.cplxmul.i.div8	sp,sp,sp
+   c:	5684647b          	cv.cplxmul.i.div8	s0,s0,s0
+  10:	574a6a7b          	cv.cplxmul.i.div8	s4,s4,s4
+  14:	57ffeffb          	cv.cplxmul.i.div8	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div8-pass.s b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div8-pass.s
new file mode 100644
index 00000000000..5a265cc97fe
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-div8-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cplxmul.i.div8 x0, x0, x0
+    cv.cplxmul.i.div8 x1, x1, x1
+    cv.cplxmul.i.div8 x2, x2, x2
+    cv.cplxmul.i.div8 x8, x8, x8
+    cv.cplxmul.i.div8 x20, x20, x20
+    cv.cplxmul.i.div8 x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-fail.d b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-fail.d
new file mode 100644
index 00000000000..5a1f3f4025b
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cplxmul-i-fail.s
+#error_output: cv-simd-cplxmul-i-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-fail.l b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-fail.l
new file mode 100644
index 00000000000..4d63c3d02b5
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cplxmul.i x32,x32,x32'
+.*: Error: illegal operands `cv.cplxmul.i x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-fail.s b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-fail.s
new file mode 100644
index 00000000000..de8deac97b9
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cplxmul.i x32, x32, x32
+    cv.cplxmul.i x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-pass.d b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-pass.d
new file mode 100644
index 00000000000..4c346bde03d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cplxmul-i-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	5600007b          	cv.cplxmul.i	zero,zero,zero
+   4:	561080fb          	cv.cplxmul.i	ra,ra,ra
+   8:	5621017b          	cv.cplxmul.i	sp,sp,sp
+   c:	5684047b          	cv.cplxmul.i	s0,s0,s0
+  10:	574a0a7b          	cv.cplxmul.i	s4,s4,s4
+  14:	57ff8ffb          	cv.cplxmul.i	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-pass.s b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-pass.s
new file mode 100644
index 00000000000..f3a20c71259
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-i-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cplxmul.i x0, x0, x0
+    cv.cplxmul.i x1, x1, x1
+    cv.cplxmul.i x2, x2, x2
+    cv.cplxmul.i x8, x8, x8
+    cv.cplxmul.i x20, x20, x20
+    cv.cplxmul.i x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div2-fail.d b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div2-fail.d
new file mode 100644
index 00000000000..329cfbdf65e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div2-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cplxmul-r-div2-fail.s
+#error_output: cv-simd-cplxmul-r-div2-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div2-fail.l b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div2-fail.l
new file mode 100644
index 00000000000..0f6c70cbaa1
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div2-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cplxmul.r.div2 x32,x32,x32'
+.*: Error: illegal operands `cv.cplxmul.r.div2 x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div2-fail.s b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div2-fail.s
new file mode 100644
index 00000000000..f37d2ebba3d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div2-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cplxmul.r.div2 x32, x32, x32
+    cv.cplxmul.r.div2 x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div2-pass.d b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div2-pass.d
new file mode 100644
index 00000000000..c8e8e61b55e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div2-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cplxmul-r-div2-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	5400207b          	cv.cplxmul.r.div2	zero,zero,zero
+   4:	5410a0fb          	cv.cplxmul.r.div2	ra,ra,ra
+   8:	5421217b          	cv.cplxmul.r.div2	sp,sp,sp
+   c:	5484247b          	cv.cplxmul.r.div2	s0,s0,s0
+  10:	554a2a7b          	cv.cplxmul.r.div2	s4,s4,s4
+  14:	55ffaffb          	cv.cplxmul.r.div2	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div2-pass.s b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div2-pass.s
new file mode 100644
index 00000000000..12af3c2e772
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div2-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cplxmul.r.div2 x0, x0, x0
+    cv.cplxmul.r.div2 x1, x1, x1
+    cv.cplxmul.r.div2 x2, x2, x2
+    cv.cplxmul.r.div2 x8, x8, x8
+    cv.cplxmul.r.div2 x20, x20, x20
+    cv.cplxmul.r.div2 x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div4-fail.d b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div4-fail.d
new file mode 100644
index 00000000000..e1dd762124d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div4-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cplxmul-r-div4-fail.s
+#error_output: cv-simd-cplxmul-r-div4-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div4-fail.l b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div4-fail.l
new file mode 100644
index 00000000000..3fa875f7a3c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div4-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cplxmul.r.div4 x32,x32,x32'
+.*: Error: illegal operands `cv.cplxmul.r.div4 x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div4-fail.s b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div4-fail.s
new file mode 100644
index 00000000000..15bd239d8ce
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div4-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cplxmul.r.div4 x32, x32, x32
+    cv.cplxmul.r.div4 x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div4-pass.d b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div4-pass.d
new file mode 100644
index 00000000000..3f99541f5bd
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div4-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cplxmul-r-div4-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	5400407b          	cv.cplxmul.r.div4	zero,zero,zero
+   4:	5410c0fb          	cv.cplxmul.r.div4	ra,ra,ra
+   8:	5421417b          	cv.cplxmul.r.div4	sp,sp,sp
+   c:	5484447b          	cv.cplxmul.r.div4	s0,s0,s0
+  10:	554a4a7b          	cv.cplxmul.r.div4	s4,s4,s4
+  14:	55ffcffb          	cv.cplxmul.r.div4	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div4-pass.s b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div4-pass.s
new file mode 100644
index 00000000000..d14f98520ea
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div4-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cplxmul.r.div4 x0, x0, x0
+    cv.cplxmul.r.div4 x1, x1, x1
+    cv.cplxmul.r.div4 x2, x2, x2
+    cv.cplxmul.r.div4 x8, x8, x8
+    cv.cplxmul.r.div4 x20, x20, x20
+    cv.cplxmul.r.div4 x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div8-fail.d b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div8-fail.d
new file mode 100644
index 00000000000..02b11f31228
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div8-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cplxmul-r-div8-fail.s
+#error_output: cv-simd-cplxmul-r-div8-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div8-fail.l b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div8-fail.l
new file mode 100644
index 00000000000..ba8c9752dad
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div8-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cplxmul.r.div8 x32,x32,x32'
+.*: Error: illegal operands `cv.cplxmul.r.div8 x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div8-fail.s b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div8-fail.s
new file mode 100644
index 00000000000..62e66c984e0
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div8-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cplxmul.r.div8 x32, x32, x32
+    cv.cplxmul.r.div8 x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div8-pass.d b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div8-pass.d
new file mode 100644
index 00000000000..cdc13e64fcd
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div8-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cplxmul-r-div8-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	5400607b          	cv.cplxmul.r.div8	zero,zero,zero
+   4:	5410e0fb          	cv.cplxmul.r.div8	ra,ra,ra
+   8:	5421617b          	cv.cplxmul.r.div8	sp,sp,sp
+   c:	5484647b          	cv.cplxmul.r.div8	s0,s0,s0
+  10:	554a6a7b          	cv.cplxmul.r.div8	s4,s4,s4
+  14:	55ffeffb          	cv.cplxmul.r.div8	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div8-pass.s b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div8-pass.s
new file mode 100644
index 00000000000..cee5c7bbbe2
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-div8-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cplxmul.r.div8 x0, x0, x0
+    cv.cplxmul.r.div8 x1, x1, x1
+    cv.cplxmul.r.div8 x2, x2, x2
+    cv.cplxmul.r.div8 x8, x8, x8
+    cv.cplxmul.r.div8 x20, x20, x20
+    cv.cplxmul.r.div8 x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-fail.d b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-fail.d
new file mode 100644
index 00000000000..ee4480a46e7
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cplxmul-r-fail.s
+#error_output: cv-simd-cplxmul-r-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-fail.l b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-fail.l
new file mode 100644
index 00000000000..f3f3a9cc542
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.cplxmul.r x32,x32,x32'
+.*: Error: illegal operands `cv.cplxmul.r x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-fail.s b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-fail.s
new file mode 100644
index 00000000000..b21557bb80a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.cplxmul.r x32, x32, x32
+    cv.cplxmul.r x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-pass.d b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-pass.d
new file mode 100644
index 00000000000..d8f8c7ab0d8
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-cplxmul-r-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	5400007b          	cv.cplxmul.r	zero,zero,zero
+   4:	541080fb          	cv.cplxmul.r	ra,ra,ra
+   8:	5421017b          	cv.cplxmul.r	sp,sp,sp
+   c:	5484047b          	cv.cplxmul.r	s0,s0,s0
+  10:	554a0a7b          	cv.cplxmul.r	s4,s4,s4
+  14:	55ff8ffb          	cv.cplxmul.r	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-pass.s b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-pass.s
new file mode 100644
index 00000000000..e2c929a485e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-cplxmul-r-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.cplxmul.r x0, x0, x0
+    cv.cplxmul.r x1, x1, x1
+    cv.cplxmul.r x2, x2, x2
+    cv.cplxmul.r x8, x8, x8
+    cv.cplxmul.r x20, x20, x20
+    cv.cplxmul.r x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotsp-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-dotsp-b-fail.d
new file mode 100644
index 00000000000..78a375e025f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotsp-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotsp-b-fail.s
+#error_output: cv-simd-dotsp-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotsp-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-dotsp-b-fail.l
new file mode 100644
index 00000000000..05e06134148
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotsp-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.dotsp.b x32,x32,x32'
+.*: Error: illegal operands `cv.dotsp.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotsp-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-dotsp-b-fail.s
new file mode 100644
index 00000000000..fea262538e2
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotsp-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.dotsp.b x32, x32, x32
+    cv.dotsp.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotsp-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-dotsp-b-pass.d
new file mode 100644
index 00000000000..43fb568fe05
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotsp-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotsp-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	9000107b          	cv.dotsp.b	zero,zero,zero
+   4:	901090fb          	cv.dotsp.b	ra,ra,ra
+   8:	9021117b          	cv.dotsp.b	sp,sp,sp
+   c:	9084147b          	cv.dotsp.b	s0,s0,s0
+  10:	914a1a7b          	cv.dotsp.b	s4,s4,s4
+  14:	91ff9ffb          	cv.dotsp.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotsp-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-dotsp-b-pass.s
new file mode 100644
index 00000000000..c9c1070f479
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotsp-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.dotsp.b x0, x0, x0
+    cv.dotsp.b x1, x1, x1
+    cv.dotsp.b x2, x2, x2
+    cv.dotsp.b x8, x8, x8
+    cv.dotsp.b x20, x20, x20
+    cv.dotsp.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotsp-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-dotsp-h-fail.d
new file mode 100644
index 00000000000..cb8ba2656fb
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotsp-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotsp-h-fail.s
+#error_output: cv-simd-dotsp-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotsp-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-dotsp-h-fail.l
new file mode 100644
index 00000000000..9a4969c3e92
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotsp-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.dotsp.h x32,x32,x32'
+.*: Error: illegal operands `cv.dotsp.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotsp-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-dotsp-h-fail.s
new file mode 100644
index 00000000000..09ccb4898c3
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotsp-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.dotsp.h x32, x32, x32
+    cv.dotsp.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotsp-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-dotsp-h-pass.d
new file mode 100644
index 00000000000..b6ee73a3f15
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotsp-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotsp-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	9000007b          	cv.dotsp.h	zero,zero,zero
+   4:	901080fb          	cv.dotsp.h	ra,ra,ra
+   8:	9021017b          	cv.dotsp.h	sp,sp,sp
+   c:	9084047b          	cv.dotsp.h	s0,s0,s0
+  10:	914a0a7b          	cv.dotsp.h	s4,s4,s4
+  14:	91ff8ffb          	cv.dotsp.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotsp-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-dotsp-h-pass.s
new file mode 100644
index 00000000000..5d651502c62
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotsp-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.dotsp.h x0, x0, x0
+    cv.dotsp.h x1, x1, x1
+    cv.dotsp.h x2, x2, x2
+    cv.dotsp.h x8, x8, x8
+    cv.dotsp.h x20, x20, x20
+    cv.dotsp.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotsp-sc-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-dotsp-sc-b-fail.d
new file mode 100644
index 00000000000..cd9ffacc679
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotsp-sc-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotsp-sc-b-fail.s
+#error_output: cv-simd-dotsp-sc-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotsp-sc-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-dotsp-sc-b-fail.l
new file mode 100644
index 00000000000..f08b9016d62
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotsp-sc-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.dotsp.sc.b x32,x32,x32'
+.*: Error: illegal operands `cv.dotsp.sc.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotsp-sc-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-dotsp-sc-b-fail.s
new file mode 100644
index 00000000000..594a6f54983
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotsp-sc-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.dotsp.sc.b x32, x32, x32
+    cv.dotsp.sc.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotsp-sc-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-dotsp-sc-b-pass.d
new file mode 100644
index 00000000000..d318e9030eb
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotsp-sc-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotsp-sc-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	9000507b          	cv.dotsp.sc.b	zero,zero,zero
+   4:	9010d0fb          	cv.dotsp.sc.b	ra,ra,ra
+   8:	9021517b          	cv.dotsp.sc.b	sp,sp,sp
+   c:	9084547b          	cv.dotsp.sc.b	s0,s0,s0
+  10:	914a5a7b          	cv.dotsp.sc.b	s4,s4,s4
+  14:	91ffdffb          	cv.dotsp.sc.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotsp-sc-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-dotsp-sc-b-pass.s
new file mode 100644
index 00000000000..2a498253989
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotsp-sc-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.dotsp.sc.b x0, x0, x0
+    cv.dotsp.sc.b x1, x1, x1
+    cv.dotsp.sc.b x2, x2, x2
+    cv.dotsp.sc.b x8, x8, x8
+    cv.dotsp.sc.b x20, x20, x20
+    cv.dotsp.sc.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotsp-sc-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-dotsp-sc-h-fail.d
new file mode 100644
index 00000000000..6760134f668
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotsp-sc-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotsp-sc-h-fail.s
+#error_output: cv-simd-dotsp-sc-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotsp-sc-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-dotsp-sc-h-fail.l
new file mode 100644
index 00000000000..16aa43d60bd
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotsp-sc-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.dotsp.sc.h x32,x32,x32'
+.*: Error: illegal operands `cv.dotsp.sc.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotsp-sc-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-dotsp-sc-h-fail.s
new file mode 100644
index 00000000000..6873a449870
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotsp-sc-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.dotsp.sc.h x32, x32, x32
+    cv.dotsp.sc.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotsp-sc-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-dotsp-sc-h-pass.d
new file mode 100644
index 00000000000..418ccea6343
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotsp-sc-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotsp-sc-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	9000407b          	cv.dotsp.sc.h	zero,zero,zero
+   4:	9010c0fb          	cv.dotsp.sc.h	ra,ra,ra
+   8:	9021417b          	cv.dotsp.sc.h	sp,sp,sp
+   c:	9084447b          	cv.dotsp.sc.h	s0,s0,s0
+  10:	914a4a7b          	cv.dotsp.sc.h	s4,s4,s4
+  14:	91ffcffb          	cv.dotsp.sc.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotsp-sc-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-dotsp-sc-h-pass.s
new file mode 100644
index 00000000000..a70c8278b67
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotsp-sc-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.dotsp.sc.h x0, x0, x0
+    cv.dotsp.sc.h x1, x1, x1
+    cv.dotsp.sc.h x2, x2, x2
+    cv.dotsp.sc.h x8, x8, x8
+    cv.dotsp.sc.h x20, x20, x20
+    cv.dotsp.sc.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotsp-sci-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-dotsp-sci-b-fail.d
new file mode 100644
index 00000000000..57ec9b6093b
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotsp-sci-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotsp-sci-b-fail.s
+#error_output: cv-simd-dotsp-sci-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotsp-sci-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-dotsp-sci-b-fail.l
new file mode 100644
index 00000000000..76fff08f39b
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotsp-sci-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.dotsp.sci.b x32,x32,20'
+.*: Error: illegal operands `cv.dotsp.sci.b x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotsp-sci-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-dotsp-sci-b-fail.s
new file mode 100644
index 00000000000..4d6307e1a7d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotsp-sci-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.dotsp.sci.b x32, x32, 20
+    cv.dotsp.sci.b x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.dotsp.sci.b x6, x7, -33
+    cv.dotsp.sci.b x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotsp-sci-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-dotsp-sci-b-pass.d
new file mode 100644
index 00000000000..f89184af378
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotsp-sci-b-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotsp-sci-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	90a0707b          	cv.dotsp.sci.b	zero,zero,20
+   4:	90a0f0fb          	cv.dotsp.sci.b	ra,ra,20
+   8:	90a1717b          	cv.dotsp.sci.b	sp,sp,20
+   c:	90a4747b          	cv.dotsp.sci.b	s0,s0,20
+  10:	90aa7a7b          	cv.dotsp.sci.b	s4,s4,20
+  14:	90affffb          	cv.dotsp.sci.b	t6,t6,20
+  18:	9103f37b          	cv.dotsp.sci.b	t1,t2,-32
+  1c:	9003f37b          	cv.dotsp.sci.b	t1,t2,0
+  20:	92f3f37b          	cv.dotsp.sci.b	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotsp-sci-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-dotsp-sci-b-pass.s
new file mode 100644
index 00000000000..e98e027903c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotsp-sci-b-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.dotsp.sci.b x0, x0, 20
+    cv.dotsp.sci.b x1, x1, 20
+    cv.dotsp.sci.b x2, x2, 20
+    cv.dotsp.sci.b x8, x8, 20
+    cv.dotsp.sci.b x20, x20, 20
+    cv.dotsp.sci.b x31, x31, 20
+    #Immediate Values Test
+    cv.dotsp.sci.b x6, x7, -32
+    cv.dotsp.sci.b x6, x7, 0
+    cv.dotsp.sci.b x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotsp-sci-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-dotsp-sci-h-fail.d
new file mode 100644
index 00000000000..3aba92e6349
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotsp-sci-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotsp-sci-h-fail.s
+#error_output: cv-simd-dotsp-sci-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotsp-sci-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-dotsp-sci-h-fail.l
new file mode 100644
index 00000000000..9410a24e1c9
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotsp-sci-h-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.dotsp.sci.h x32,x32,20'
+.*: Error: illegal operands `cv.dotsp.sci.h x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotsp-sci-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-dotsp-sci-h-fail.s
new file mode 100644
index 00000000000..bc7fb62d76d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotsp-sci-h-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.dotsp.sci.h x32, x32, 20
+    cv.dotsp.sci.h x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.dotsp.sci.h x6, x7, -33
+    cv.dotsp.sci.h x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotsp-sci-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-dotsp-sci-h-pass.d
new file mode 100644
index 00000000000..330dcdadab0
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotsp-sci-h-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotsp-sci-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	90a0607b          	cv.dotsp.sci.h	zero,zero,20
+   4:	90a0e0fb          	cv.dotsp.sci.h	ra,ra,20
+   8:	90a1617b          	cv.dotsp.sci.h	sp,sp,20
+   c:	90a4647b          	cv.dotsp.sci.h	s0,s0,20
+  10:	90aa6a7b          	cv.dotsp.sci.h	s4,s4,20
+  14:	90afeffb          	cv.dotsp.sci.h	t6,t6,20
+  18:	9103e37b          	cv.dotsp.sci.h	t1,t2,-32
+  1c:	9003e37b          	cv.dotsp.sci.h	t1,t2,0
+  20:	92f3e37b          	cv.dotsp.sci.h	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotsp-sci-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-dotsp-sci-h-pass.s
new file mode 100644
index 00000000000..d0bcf39c3ff
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotsp-sci-h-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.dotsp.sci.h x0, x0, 20
+    cv.dotsp.sci.h x1, x1, 20
+    cv.dotsp.sci.h x2, x2, 20
+    cv.dotsp.sci.h x8, x8, 20
+    cv.dotsp.sci.h x20, x20, 20
+    cv.dotsp.sci.h x31, x31, 20
+    #Immediate Values Test
+    cv.dotsp.sci.h x6, x7, -32
+    cv.dotsp.sci.h x6, x7, 0
+    cv.dotsp.sci.h x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotup-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-dotup-b-fail.d
new file mode 100644
index 00000000000..a1acd2d00d0
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotup-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotup-b-fail.s
+#error_output: cv-simd-dotup-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotup-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-dotup-b-fail.l
new file mode 100644
index 00000000000..7a3964aece1
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotup-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.dotup.b x32,x32,x32'
+.*: Error: illegal operands `cv.dotup.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotup-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-dotup-b-fail.s
new file mode 100644
index 00000000000..858ee2aac83
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotup-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.dotup.b x32, x32, x32
+    cv.dotup.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotup-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-dotup-b-pass.d
new file mode 100644
index 00000000000..baee7940f2e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotup-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotup-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	8000107b          	cv.dotup.b	zero,zero,zero
+   4:	801090fb          	cv.dotup.b	ra,ra,ra
+   8:	8021117b          	cv.dotup.b	sp,sp,sp
+   c:	8084147b          	cv.dotup.b	s0,s0,s0
+  10:	814a1a7b          	cv.dotup.b	s4,s4,s4
+  14:	81ff9ffb          	cv.dotup.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotup-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-dotup-b-pass.s
new file mode 100644
index 00000000000..f689f8f1225
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotup-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.dotup.b x0, x0, x0
+    cv.dotup.b x1, x1, x1
+    cv.dotup.b x2, x2, x2
+    cv.dotup.b x8, x8, x8
+    cv.dotup.b x20, x20, x20
+    cv.dotup.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotup-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-dotup-h-fail.d
new file mode 100644
index 00000000000..744f55d56c3
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotup-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotup-h-fail.s
+#error_output: cv-simd-dotup-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotup-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-dotup-h-fail.l
new file mode 100644
index 00000000000..3bc820e3e8b
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotup-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.dotup.h x32,x32,x32'
+.*: Error: illegal operands `cv.dotup.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotup-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-dotup-h-fail.s
new file mode 100644
index 00000000000..8148e5f9a17
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotup-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.dotup.h x32, x32, x32
+    cv.dotup.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotup-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-dotup-h-pass.d
new file mode 100644
index 00000000000..44f9c9c7e3c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotup-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotup-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	8000007b          	cv.dotup.h	zero,zero,zero
+   4:	801080fb          	cv.dotup.h	ra,ra,ra
+   8:	8021017b          	cv.dotup.h	sp,sp,sp
+   c:	8084047b          	cv.dotup.h	s0,s0,s0
+  10:	814a0a7b          	cv.dotup.h	s4,s4,s4
+  14:	81ff8ffb          	cv.dotup.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotup-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-dotup-h-pass.s
new file mode 100644
index 00000000000..bf8ac6d64ad
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotup-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.dotup.h x0, x0, x0
+    cv.dotup.h x1, x1, x1
+    cv.dotup.h x2, x2, x2
+    cv.dotup.h x8, x8, x8
+    cv.dotup.h x20, x20, x20
+    cv.dotup.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotup-sc-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-dotup-sc-b-fail.d
new file mode 100644
index 00000000000..b43265562a7
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotup-sc-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotup-sc-b-fail.s
+#error_output: cv-simd-dotup-sc-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotup-sc-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-dotup-sc-b-fail.l
new file mode 100644
index 00000000000..86044aeac47
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotup-sc-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.dotup.sc.b x32,x32,x32'
+.*: Error: illegal operands `cv.dotup.sc.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotup-sc-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-dotup-sc-b-fail.s
new file mode 100644
index 00000000000..c050e02c185
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotup-sc-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.dotup.sc.b x32, x32, x32
+    cv.dotup.sc.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotup-sc-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-dotup-sc-b-pass.d
new file mode 100644
index 00000000000..305d5ec70c4
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotup-sc-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotup-sc-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	8000507b          	cv.dotup.sc.b	zero,zero,zero
+   4:	8010d0fb          	cv.dotup.sc.b	ra,ra,ra
+   8:	8021517b          	cv.dotup.sc.b	sp,sp,sp
+   c:	8084547b          	cv.dotup.sc.b	s0,s0,s0
+  10:	814a5a7b          	cv.dotup.sc.b	s4,s4,s4
+  14:	81ffdffb          	cv.dotup.sc.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotup-sc-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-dotup-sc-b-pass.s
new file mode 100644
index 00000000000..332c0abd010
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotup-sc-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.dotup.sc.b x0, x0, x0
+    cv.dotup.sc.b x1, x1, x1
+    cv.dotup.sc.b x2, x2, x2
+    cv.dotup.sc.b x8, x8, x8
+    cv.dotup.sc.b x20, x20, x20
+    cv.dotup.sc.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotup-sc-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-dotup-sc-h-fail.d
new file mode 100644
index 00000000000..5f2978f4bbe
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotup-sc-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotup-sc-h-fail.s
+#error_output: cv-simd-dotup-sc-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotup-sc-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-dotup-sc-h-fail.l
new file mode 100644
index 00000000000..c2264dcdb7c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotup-sc-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.dotup.sc.h x32,x32,x32'
+.*: Error: illegal operands `cv.dotup.sc.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotup-sc-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-dotup-sc-h-fail.s
new file mode 100644
index 00000000000..f60879dcefc
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotup-sc-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.dotup.sc.h x32, x32, x32
+    cv.dotup.sc.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotup-sc-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-dotup-sc-h-pass.d
new file mode 100644
index 00000000000..72ce17d933b
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotup-sc-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotup-sc-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	8000407b          	cv.dotup.sc.h	zero,zero,zero
+   4:	8010c0fb          	cv.dotup.sc.h	ra,ra,ra
+   8:	8021417b          	cv.dotup.sc.h	sp,sp,sp
+   c:	8084447b          	cv.dotup.sc.h	s0,s0,s0
+  10:	814a4a7b          	cv.dotup.sc.h	s4,s4,s4
+  14:	81ffcffb          	cv.dotup.sc.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotup-sc-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-dotup-sc-h-pass.s
new file mode 100644
index 00000000000..305442c7bcc
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotup-sc-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.dotup.sc.h x0, x0, x0
+    cv.dotup.sc.h x1, x1, x1
+    cv.dotup.sc.h x2, x2, x2
+    cv.dotup.sc.h x8, x8, x8
+    cv.dotup.sc.h x20, x20, x20
+    cv.dotup.sc.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotup-sci-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-dotup-sci-b-fail.d
new file mode 100644
index 00000000000..1e1d17b7df2
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotup-sci-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotup-sci-b-fail.s
+#error_output: cv-simd-dotup-sci-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotup-sci-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-dotup-sci-b-fail.l
new file mode 100644
index 00000000000..06ab6ad68c9
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotup-sci-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.dotup.sci.b x32,x32,20'
+.*: Error: illegal operands `cv.dotup.sci.b x33,x33,20'
+.*: Error: immediate value must be 6-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 6-bit unsigned, 64 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotup-sci-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-dotup-sci-b-fail.s
new file mode 100644
index 00000000000..94e34518ccf
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotup-sci-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.dotup.sci.b x32, x32, 20
+    cv.dotup.sci.b x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.dotup.sci.b x6, x7, -1
+    cv.dotup.sci.b x6, x7, 64
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotup-sci-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-dotup-sci-b-pass.d
new file mode 100644
index 00000000000..e730b7157e8
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotup-sci-b-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotup-sci-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	80a0707b          	cv.dotup.sci.b	zero,zero,20
+   4:	80a0f0fb          	cv.dotup.sci.b	ra,ra,20
+   8:	80a1717b          	cv.dotup.sci.b	sp,sp,20
+   c:	80a4747b          	cv.dotup.sci.b	s0,s0,20
+  10:	80aa7a7b          	cv.dotup.sci.b	s4,s4,20
+  14:	80affffb          	cv.dotup.sci.b	t6,t6,20
+  18:	8003f37b          	cv.dotup.sci.b	t1,t2,0
+  1c:	83f3f37b          	cv.dotup.sci.b	t1,t2,63
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotup-sci-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-dotup-sci-b-pass.s
new file mode 100644
index 00000000000..9dcb63433f1
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotup-sci-b-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.dotup.sci.b x0, x0, 20
+    cv.dotup.sci.b x1, x1, 20
+    cv.dotup.sci.b x2, x2, 20
+    cv.dotup.sci.b x8, x8, 20
+    cv.dotup.sci.b x20, x20, 20
+    cv.dotup.sci.b x31, x31, 20
+    #Immediate Values Test
+    cv.dotup.sci.b x6, x7, 0
+    cv.dotup.sci.b x6, x7, 63
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotup-sci-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-dotup-sci-h-fail.d
new file mode 100644
index 00000000000..b2d54310161
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotup-sci-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotup-sci-h-fail.s
+#error_output: cv-simd-dotup-sci-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotup-sci-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-dotup-sci-h-fail.l
new file mode 100644
index 00000000000..f62408540de
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotup-sci-h-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.dotup.sci.h x32,x32,20'
+.*: Error: illegal operands `cv.dotup.sci.h x33,x33,20'
+.*: Error: immediate value must be 6-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 6-bit unsigned, 64 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotup-sci-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-dotup-sci-h-fail.s
new file mode 100644
index 00000000000..5e08fc7a4ad
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotup-sci-h-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.dotup.sci.h x32, x32, 20
+    cv.dotup.sci.h x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.dotup.sci.h x6, x7, -1
+    cv.dotup.sci.h x6, x7, 64
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotup-sci-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-dotup-sci-h-pass.d
new file mode 100644
index 00000000000..fed5c6b5b8c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotup-sci-h-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotup-sci-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	80a0607b          	cv.dotup.sci.h	zero,zero,20
+   4:	80a0e0fb          	cv.dotup.sci.h	ra,ra,20
+   8:	80a1617b          	cv.dotup.sci.h	sp,sp,20
+   c:	80a4647b          	cv.dotup.sci.h	s0,s0,20
+  10:	80aa6a7b          	cv.dotup.sci.h	s4,s4,20
+  14:	80afeffb          	cv.dotup.sci.h	t6,t6,20
+  18:	8003e37b          	cv.dotup.sci.h	t1,t2,0
+  1c:	83f3e37b          	cv.dotup.sci.h	t1,t2,63
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotup-sci-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-dotup-sci-h-pass.s
new file mode 100644
index 00000000000..3ea446ded09
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotup-sci-h-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.dotup.sci.h x0, x0, 20
+    cv.dotup.sci.h x1, x1, 20
+    cv.dotup.sci.h x2, x2, 20
+    cv.dotup.sci.h x8, x8, 20
+    cv.dotup.sci.h x20, x20, 20
+    cv.dotup.sci.h x31, x31, 20
+    #Immediate Values Test
+    cv.dotup.sci.h x6, x7, 0
+    cv.dotup.sci.h x6, x7, 63
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotusp-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-dotusp-b-fail.d
new file mode 100644
index 00000000000..cefd5542193
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotusp-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotusp-b-fail.s
+#error_output: cv-simd-dotusp-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotusp-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-dotusp-b-fail.l
new file mode 100644
index 00000000000..da8dcc44589
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotusp-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.dotusp.b x32,x32,x32'
+.*: Error: illegal operands `cv.dotusp.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotusp-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-dotusp-b-fail.s
new file mode 100644
index 00000000000..f7a1dfa2415
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotusp-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.dotusp.b x32, x32, x32
+    cv.dotusp.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotusp-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-dotusp-b-pass.d
new file mode 100644
index 00000000000..adb512c1d6d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotusp-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotusp-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	8800107b          	cv.dotusp.b	zero,zero,zero
+   4:	881090fb          	cv.dotusp.b	ra,ra,ra
+   8:	8821117b          	cv.dotusp.b	sp,sp,sp
+   c:	8884147b          	cv.dotusp.b	s0,s0,s0
+  10:	894a1a7b          	cv.dotusp.b	s4,s4,s4
+  14:	89ff9ffb          	cv.dotusp.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotusp-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-dotusp-b-pass.s
new file mode 100644
index 00000000000..50d191e0053
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotusp-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.dotusp.b x0, x0, x0
+    cv.dotusp.b x1, x1, x1
+    cv.dotusp.b x2, x2, x2
+    cv.dotusp.b x8, x8, x8
+    cv.dotusp.b x20, x20, x20
+    cv.dotusp.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotusp-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-dotusp-h-fail.d
new file mode 100644
index 00000000000..fdede84e736
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotusp-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotusp-h-fail.s
+#error_output: cv-simd-dotusp-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotusp-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-dotusp-h-fail.l
new file mode 100644
index 00000000000..3b025c9b718
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotusp-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.dotusp.h x32,x32,x32'
+.*: Error: illegal operands `cv.dotusp.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotusp-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-dotusp-h-fail.s
new file mode 100644
index 00000000000..69fd8c4b4f4
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotusp-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.dotusp.h x32, x32, x32
+    cv.dotusp.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotusp-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-dotusp-h-pass.d
new file mode 100644
index 00000000000..4727622b959
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotusp-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotusp-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	8800007b          	cv.dotusp.h	zero,zero,zero
+   4:	881080fb          	cv.dotusp.h	ra,ra,ra
+   8:	8821017b          	cv.dotusp.h	sp,sp,sp
+   c:	8884047b          	cv.dotusp.h	s0,s0,s0
+  10:	894a0a7b          	cv.dotusp.h	s4,s4,s4
+  14:	89ff8ffb          	cv.dotusp.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotusp-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-dotusp-h-pass.s
new file mode 100644
index 00000000000..77e58734be0
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotusp-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.dotusp.h x0, x0, x0
+    cv.dotusp.h x1, x1, x1
+    cv.dotusp.h x2, x2, x2
+    cv.dotusp.h x8, x8, x8
+    cv.dotusp.h x20, x20, x20
+    cv.dotusp.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotusp-sc-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-dotusp-sc-b-fail.d
new file mode 100644
index 00000000000..dc763469da8
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotusp-sc-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotusp-sc-b-fail.s
+#error_output: cv-simd-dotusp-sc-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotusp-sc-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-dotusp-sc-b-fail.l
new file mode 100644
index 00000000000..c1c7d325c99
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotusp-sc-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.dotusp.sc.b x32,x32,x32'
+.*: Error: illegal operands `cv.dotusp.sc.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotusp-sc-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-dotusp-sc-b-fail.s
new file mode 100644
index 00000000000..7a2863a5679
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotusp-sc-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.dotusp.sc.b x32, x32, x32
+    cv.dotusp.sc.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotusp-sc-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-dotusp-sc-b-pass.d
new file mode 100644
index 00000000000..a8c2408e753
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotusp-sc-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotusp-sc-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	8800507b          	cv.dotusp.sc.b	zero,zero,zero
+   4:	8810d0fb          	cv.dotusp.sc.b	ra,ra,ra
+   8:	8821517b          	cv.dotusp.sc.b	sp,sp,sp
+   c:	8884547b          	cv.dotusp.sc.b	s0,s0,s0
+  10:	894a5a7b          	cv.dotusp.sc.b	s4,s4,s4
+  14:	89ffdffb          	cv.dotusp.sc.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotusp-sc-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-dotusp-sc-b-pass.s
new file mode 100644
index 00000000000..6318c733d95
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotusp-sc-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.dotusp.sc.b x0, x0, x0
+    cv.dotusp.sc.b x1, x1, x1
+    cv.dotusp.sc.b x2, x2, x2
+    cv.dotusp.sc.b x8, x8, x8
+    cv.dotusp.sc.b x20, x20, x20
+    cv.dotusp.sc.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotusp-sc-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-dotusp-sc-h-fail.d
new file mode 100644
index 00000000000..aa166ddc6e7
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotusp-sc-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotusp-sc-h-fail.s
+#error_output: cv-simd-dotusp-sc-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotusp-sc-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-dotusp-sc-h-fail.l
new file mode 100644
index 00000000000..48e1819aa53
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotusp-sc-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.dotusp.sc.h x32,x32,x32'
+.*: Error: illegal operands `cv.dotusp.sc.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotusp-sc-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-dotusp-sc-h-fail.s
new file mode 100644
index 00000000000..1ef27353cdf
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotusp-sc-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.dotusp.sc.h x32, x32, x32
+    cv.dotusp.sc.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotusp-sc-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-dotusp-sc-h-pass.d
new file mode 100644
index 00000000000..a3afc79157e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotusp-sc-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotusp-sc-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	8800407b          	cv.dotusp.sc.h	zero,zero,zero
+   4:	8810c0fb          	cv.dotusp.sc.h	ra,ra,ra
+   8:	8821417b          	cv.dotusp.sc.h	sp,sp,sp
+   c:	8884447b          	cv.dotusp.sc.h	s0,s0,s0
+  10:	894a4a7b          	cv.dotusp.sc.h	s4,s4,s4
+  14:	89ffcffb          	cv.dotusp.sc.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotusp-sc-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-dotusp-sc-h-pass.s
new file mode 100644
index 00000000000..04e69bc7c6d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotusp-sc-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.dotusp.sc.h x0, x0, x0
+    cv.dotusp.sc.h x1, x1, x1
+    cv.dotusp.sc.h x2, x2, x2
+    cv.dotusp.sc.h x8, x8, x8
+    cv.dotusp.sc.h x20, x20, x20
+    cv.dotusp.sc.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotusp-sci-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-dotusp-sci-b-fail.d
new file mode 100644
index 00000000000..0ea3d54f7c7
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotusp-sci-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotusp-sci-b-fail.s
+#error_output: cv-simd-dotusp-sci-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotusp-sci-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-dotusp-sci-b-fail.l
new file mode 100644
index 00000000000..6e3e7bf28de
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotusp-sci-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.dotusp.sci.b x32,x32,20'
+.*: Error: illegal operands `cv.dotusp.sci.b x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotusp-sci-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-dotusp-sci-b-fail.s
new file mode 100644
index 00000000000..78198cf290d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotusp-sci-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.dotusp.sci.b x32, x32, 20
+    cv.dotusp.sci.b x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.dotusp.sci.b x6, x7, -33
+    cv.dotusp.sci.b x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotusp-sci-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-dotusp-sci-b-pass.d
new file mode 100644
index 00000000000..e9f956ad384
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotusp-sci-b-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotusp-sci-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	88a0707b          	cv.dotusp.sci.b	zero,zero,20
+   4:	88a0f0fb          	cv.dotusp.sci.b	ra,ra,20
+   8:	88a1717b          	cv.dotusp.sci.b	sp,sp,20
+   c:	88a4747b          	cv.dotusp.sci.b	s0,s0,20
+  10:	88aa7a7b          	cv.dotusp.sci.b	s4,s4,20
+  14:	88affffb          	cv.dotusp.sci.b	t6,t6,20
+  18:	8903f37b          	cv.dotusp.sci.b	t1,t2,-32
+  1c:	8803f37b          	cv.dotusp.sci.b	t1,t2,0
+  20:	8af3f37b          	cv.dotusp.sci.b	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotusp-sci-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-dotusp-sci-b-pass.s
new file mode 100644
index 00000000000..618abbb88cb
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotusp-sci-b-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.dotusp.sci.b x0, x0, 20
+    cv.dotusp.sci.b x1, x1, 20
+    cv.dotusp.sci.b x2, x2, 20
+    cv.dotusp.sci.b x8, x8, 20
+    cv.dotusp.sci.b x20, x20, 20
+    cv.dotusp.sci.b x31, x31, 20
+    #Immediate Values Test
+    cv.dotusp.sci.b x6, x7, -32
+    cv.dotusp.sci.b x6, x7, 0
+    cv.dotusp.sci.b x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotusp-sci-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-dotusp-sci-h-fail.d
new file mode 100644
index 00000000000..89ed824b8a6
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotusp-sci-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotusp-sci-h-fail.s
+#error_output: cv-simd-dotusp-sci-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotusp-sci-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-dotusp-sci-h-fail.l
new file mode 100644
index 00000000000..99f14c09c12
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotusp-sci-h-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.dotusp.sci.h x32,x32,20'
+.*: Error: illegal operands `cv.dotusp.sci.h x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotusp-sci-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-dotusp-sci-h-fail.s
new file mode 100644
index 00000000000..b5ae531aa6f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotusp-sci-h-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.dotusp.sci.h x32, x32, 20
+    cv.dotusp.sci.h x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.dotusp.sci.h x6, x7, -33
+    cv.dotusp.sci.h x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotusp-sci-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-dotusp-sci-h-pass.d
new file mode 100644
index 00000000000..cb5e2aeca57
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotusp-sci-h-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-dotusp-sci-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	88a0607b          	cv.dotusp.sci.h	zero,zero,20
+   4:	88a0e0fb          	cv.dotusp.sci.h	ra,ra,20
+   8:	88a1617b          	cv.dotusp.sci.h	sp,sp,20
+   c:	88a4647b          	cv.dotusp.sci.h	s0,s0,20
+  10:	88aa6a7b          	cv.dotusp.sci.h	s4,s4,20
+  14:	88afeffb          	cv.dotusp.sci.h	t6,t6,20
+  18:	8903e37b          	cv.dotusp.sci.h	t1,t2,-32
+  1c:	8803e37b          	cv.dotusp.sci.h	t1,t2,0
+  20:	8af3e37b          	cv.dotusp.sci.h	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-dotusp-sci-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-dotusp-sci-h-pass.s
new file mode 100644
index 00000000000..991095197f0
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-dotusp-sci-h-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.dotusp.sci.h x0, x0, 20
+    cv.dotusp.sci.h x1, x1, 20
+    cv.dotusp.sci.h x2, x2, 20
+    cv.dotusp.sci.h x8, x8, 20
+    cv.dotusp.sci.h x20, x20, 20
+    cv.dotusp.sci.h x31, x31, 20
+    #Immediate Values Test
+    cv.dotusp.sci.h x6, x7, -32
+    cv.dotusp.sci.h x6, x7, 0
+    cv.dotusp.sci.h x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-extract-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-extract-b-fail.d
new file mode 100644
index 00000000000..dc987eef71c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-extract-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-extract-b-fail.s
+#error_output: cv-simd-extract-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-extract-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-extract-b-fail.l
new file mode 100644
index 00000000000..8bd2af78338
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-extract-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.extract.b x32,x32,2'
+.*: Error: illegal operands `cv.extract.b x33,x33,2'
+.*: Error: immediate value must be 2-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 2-bit unsigned, 4 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-extract-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-extract-b-fail.s
new file mode 100644
index 00000000000..bb5fc63e2b3
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-extract-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.extract.b x32, x32, 2
+    cv.extract.b x33, x33, 2
+    #Boundary Immediate Values Test
+    cv.extract.b x6, x7, -1
+    cv.extract.b x6, x7, 4
diff --git a/gas/testsuite/gas/riscv/cv-simd-extract-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-extract-b-pass.d
new file mode 100644
index 00000000000..4e66cffd156
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-extract-b-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-extract-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	b810107b          	cv.extract.b	zero,zero,2
+   4:	b81090fb          	cv.extract.b	ra,ra,2
+   8:	b811117b          	cv.extract.b	sp,sp,2
+   c:	b814147b          	cv.extract.b	s0,s0,2
+  10:	b81a1a7b          	cv.extract.b	s4,s4,2
+  14:	b81f9ffb          	cv.extract.b	t6,t6,2
+  18:	b803937b          	cv.extract.b	t1,t2,0
+  1c:	ba13937b          	cv.extract.b	t1,t2,3
diff --git a/gas/testsuite/gas/riscv/cv-simd-extract-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-extract-b-pass.s
new file mode 100644
index 00000000000..04e87dbb847
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-extract-b-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.extract.b x0, x0, 2
+    cv.extract.b x1, x1, 2
+    cv.extract.b x2, x2, 2
+    cv.extract.b x8, x8, 2
+    cv.extract.b x20, x20, 2
+    cv.extract.b x31, x31, 2
+    #Immediate Values Test
+    cv.extract.b x6, x7, 0
+    cv.extract.b x6, x7, 3
diff --git a/gas/testsuite/gas/riscv/cv-simd-extract-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-extract-h-fail.d
new file mode 100644
index 00000000000..b6f94bfb620
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-extract-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-extract-h-fail.s
+#error_output: cv-simd-extract-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-extract-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-extract-h-fail.l
new file mode 100644
index 00000000000..efea5128201
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-extract-h-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.extract.h x32,x32,1'
+.*: Error: illegal operands `cv.extract.h x33,x33,1'
+.*: Error: immediate value must be 1-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 1-bit unsigned, 2 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-extract-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-extract-h-fail.s
new file mode 100644
index 00000000000..bed9dc60b29
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-extract-h-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.extract.h x32, x32, 1
+    cv.extract.h x33, x33, 1
+    #Boundary Immediate Values Test
+    cv.extract.h x6, x7, -1
+    cv.extract.h x6, x7, 2
diff --git a/gas/testsuite/gas/riscv/cv-simd-extract-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-extract-h-pass.d
new file mode 100644
index 00000000000..3655538f19f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-extract-h-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-extract-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	ba00007b          	cv.extract.h	zero,zero,1
+   4:	ba0080fb          	cv.extract.h	ra,ra,1
+   8:	ba01017b          	cv.extract.h	sp,sp,1
+   c:	ba04047b          	cv.extract.h	s0,s0,1
+  10:	ba0a0a7b          	cv.extract.h	s4,s4,1
+  14:	ba0f8ffb          	cv.extract.h	t6,t6,1
+  18:	b803837b          	cv.extract.h	t1,t2,0
+  1c:	ba03837b          	cv.extract.h	t1,t2,1
diff --git a/gas/testsuite/gas/riscv/cv-simd-extract-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-extract-h-pass.s
new file mode 100644
index 00000000000..d2373baced4
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-extract-h-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.extract.h x0, x0, 1
+    cv.extract.h x1, x1, 1
+    cv.extract.h x2, x2, 1
+    cv.extract.h x8, x8, 1
+    cv.extract.h x20, x20, 1
+    cv.extract.h x31, x31, 1
+    #Immediate Values Test
+    cv.extract.h x6, x7, 0
+    cv.extract.h x6, x7, 1
diff --git a/gas/testsuite/gas/riscv/cv-simd-extractu-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-extractu-b-fail.d
new file mode 100644
index 00000000000..a591c64c8d1
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-extractu-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-extractu-b-fail.s
+#error_output: cv-simd-extractu-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-extractu-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-extractu-b-fail.l
new file mode 100644
index 00000000000..5015a59f857
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-extractu-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.extractu.b x32,x32,2'
+.*: Error: illegal operands `cv.extractu.b x33,x33,2'
+.*: Error: immediate value must be 2-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 2-bit unsigned, 4 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-extractu-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-extractu-b-fail.s
new file mode 100644
index 00000000000..8d9a8653e76
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-extractu-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.extractu.b x32, x32, 2
+    cv.extractu.b x33, x33, 2
+    #Boundary Immediate Values Test
+    cv.extractu.b x6, x7, -1
+    cv.extractu.b x6, x7, 4
diff --git a/gas/testsuite/gas/riscv/cv-simd-extractu-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-extractu-b-pass.d
new file mode 100644
index 00000000000..ac17efa88fa
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-extractu-b-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-extractu-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	b810307b          	cv.extractu.b	zero,zero,2
+   4:	b810b0fb          	cv.extractu.b	ra,ra,2
+   8:	b811317b          	cv.extractu.b	sp,sp,2
+   c:	b814347b          	cv.extractu.b	s0,s0,2
+  10:	b81a3a7b          	cv.extractu.b	s4,s4,2
+  14:	b81fbffb          	cv.extractu.b	t6,t6,2
+  18:	b803b37b          	cv.extractu.b	t1,t2,0
+  1c:	ba13b37b          	cv.extractu.b	t1,t2,3
diff --git a/gas/testsuite/gas/riscv/cv-simd-extractu-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-extractu-b-pass.s
new file mode 100644
index 00000000000..adcc064acfd
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-extractu-b-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.extractu.b x0, x0, 2
+    cv.extractu.b x1, x1, 2
+    cv.extractu.b x2, x2, 2
+    cv.extractu.b x8, x8, 2
+    cv.extractu.b x20, x20, 2
+    cv.extractu.b x31, x31, 2
+    #Immediate Values Test
+    cv.extractu.b x6, x7, 0
+    cv.extractu.b x6, x7, 3
diff --git a/gas/testsuite/gas/riscv/cv-simd-extractu-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-extractu-h-fail.d
new file mode 100644
index 00000000000..fb23af44fec
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-extractu-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-extractu-h-fail.s
+#error_output: cv-simd-extractu-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-extractu-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-extractu-h-fail.l
new file mode 100644
index 00000000000..47a7cc955b9
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-extractu-h-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.extractu.h x32,x32,1'
+.*: Error: illegal operands `cv.extractu.h x33,x33,1'
+.*: Error: immediate value must be 1-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 1-bit unsigned, 2 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-extractu-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-extractu-h-fail.s
new file mode 100644
index 00000000000..69401f5df2e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-extractu-h-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.extractu.h x32, x32, 1
+    cv.extractu.h x33, x33, 1
+    #Boundary Immediate Values Test
+    cv.extractu.h x6, x7, -1
+    cv.extractu.h x6, x7, 2
diff --git a/gas/testsuite/gas/riscv/cv-simd-extractu-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-extractu-h-pass.d
new file mode 100644
index 00000000000..748cb8ba6a1
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-extractu-h-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-extractu-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	ba00207b          	cv.extractu.h	zero,zero,1
+   4:	ba00a0fb          	cv.extractu.h	ra,ra,1
+   8:	ba01217b          	cv.extractu.h	sp,sp,1
+   c:	ba04247b          	cv.extractu.h	s0,s0,1
+  10:	ba0a2a7b          	cv.extractu.h	s4,s4,1
+  14:	ba0faffb          	cv.extractu.h	t6,t6,1
+  18:	b803a37b          	cv.extractu.h	t1,t2,0
+  1c:	ba03a37b          	cv.extractu.h	t1,t2,1
diff --git a/gas/testsuite/gas/riscv/cv-simd-extractu-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-extractu-h-pass.s
new file mode 100644
index 00000000000..05d631ea6f6
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-extractu-h-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.extractu.h x0, x0, 1
+    cv.extractu.h x1, x1, 1
+    cv.extractu.h x2, x2, 1
+    cv.extractu.h x8, x8, 1
+    cv.extractu.h x20, x20, 1
+    cv.extractu.h x31, x31, 1
+    #Immediate Values Test
+    cv.extractu.h x6, x7, 0
+    cv.extractu.h x6, x7, 1
diff --git a/gas/testsuite/gas/riscv/cv-simd-insert-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-insert-b-fail.d
new file mode 100644
index 00000000000..1b367d2a8ee
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-insert-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-insert-b-fail.s
+#error_output: cv-simd-insert-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-insert-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-insert-b-fail.l
new file mode 100644
index 00000000000..f1249a06471
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-insert-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.insert.b x32,x32,2'
+.*: Error: illegal operands `cv.insert.b x33,x33,2'
+.*: Error: immediate value must be 2-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 2-bit unsigned, 4 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-insert-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-insert-b-fail.s
new file mode 100644
index 00000000000..3df296f0e5f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-insert-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.insert.b x32, x32, 2
+    cv.insert.b x33, x33, 2
+    #Boundary Immediate Values Test
+    cv.insert.b x6, x7, -1
+    cv.insert.b x6, x7, 4
diff --git a/gas/testsuite/gas/riscv/cv-simd-insert-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-insert-b-pass.d
new file mode 100644
index 00000000000..83f7b98b1ee
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-insert-b-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-insert-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	b810507b          	cv.insert.b	zero,zero,2
+   4:	b810d0fb          	cv.insert.b	ra,ra,2
+   8:	b811517b          	cv.insert.b	sp,sp,2
+   c:	b814547b          	cv.insert.b	s0,s0,2
+  10:	b81a5a7b          	cv.insert.b	s4,s4,2
+  14:	b81fdffb          	cv.insert.b	t6,t6,2
+  18:	b803d37b          	cv.insert.b	t1,t2,0
+  1c:	ba13d37b          	cv.insert.b	t1,t2,3
diff --git a/gas/testsuite/gas/riscv/cv-simd-insert-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-insert-b-pass.s
new file mode 100644
index 00000000000..edc68280ed7
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-insert-b-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.insert.b x0, x0, 2
+    cv.insert.b x1, x1, 2
+    cv.insert.b x2, x2, 2
+    cv.insert.b x8, x8, 2
+    cv.insert.b x20, x20, 2
+    cv.insert.b x31, x31, 2
+    #Immediate Values Test
+    cv.insert.b x6, x7, 0
+    cv.insert.b x6, x7, 3
diff --git a/gas/testsuite/gas/riscv/cv-simd-insert-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-insert-h-fail.d
new file mode 100644
index 00000000000..8b7a2f097cd
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-insert-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-insert-h-fail.s
+#error_output: cv-simd-insert-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-insert-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-insert-h-fail.l
new file mode 100644
index 00000000000..04e261e08bf
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-insert-h-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.insert.h x32,x32,1'
+.*: Error: illegal operands `cv.insert.h x33,x33,1'
+.*: Error: immediate value must be 1-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 1-bit unsigned, 2 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-insert-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-insert-h-fail.s
new file mode 100644
index 00000000000..bd441601f2c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-insert-h-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.insert.h x32, x32, 1
+    cv.insert.h x33, x33, 1
+    #Boundary Immediate Values Test
+    cv.insert.h x6, x7, -1
+    cv.insert.h x6, x7, 2
diff --git a/gas/testsuite/gas/riscv/cv-simd-insert-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-insert-h-pass.d
new file mode 100644
index 00000000000..3a13221d14a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-insert-h-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-insert-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	ba00407b          	cv.insert.h	zero,zero,1
+   4:	ba00c0fb          	cv.insert.h	ra,ra,1
+   8:	ba01417b          	cv.insert.h	sp,sp,1
+   c:	ba04447b          	cv.insert.h	s0,s0,1
+  10:	ba0a4a7b          	cv.insert.h	s4,s4,1
+  14:	ba0fcffb          	cv.insert.h	t6,t6,1
+  18:	b803c37b          	cv.insert.h	t1,t2,0
+  1c:	ba03c37b          	cv.insert.h	t1,t2,1
diff --git a/gas/testsuite/gas/riscv/cv-simd-insert-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-insert-h-pass.s
new file mode 100644
index 00000000000..6f3a035f256
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-insert-h-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.insert.h x0, x0, 1
+    cv.insert.h x1, x1, 1
+    cv.insert.h x2, x2, 1
+    cv.insert.h x8, x8, 1
+    cv.insert.h x20, x20, 1
+    cv.insert.h x31, x31, 1
+    #Immediate Values Test
+    cv.insert.h x6, x7, 0
+    cv.insert.h x6, x7, 1
diff --git a/gas/testsuite/gas/riscv/cv-simd-march-fail.d b/gas/testsuite/gas/riscv/cv-simd-march-fail.d
new file mode 100644
index 00000000000..4ae0a97b4ce
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-march-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i
+#source: cv-simd-march-fail.s
+#error_output: cv-simd-march-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-march-fail.l b/gas/testsuite/gas/riscv/cv-simd-march-fail.l
new file mode 100644
index 00000000000..dc9eef29026
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-march-fail.l
@@ -0,0 +1,221 @@
+.*: Assembler messages:
+.*: Error: unrecognized opcode `cv.add.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.add.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.add.sc.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.add.sc.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.add.sci.h x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.add.sci.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sub.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sub.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sub.sc.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sub.sc.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sub.sci.h x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sub.sci.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.avg.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.avg.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.avg.sc.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.avg.sc.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.avg.sci.h x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.avg.sci.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.avgu.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.avgu.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.avgu.sc.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.avgu.sc.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.avgu.sci.h x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.avgu.sci.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.min.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.min.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.min.sc.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.min.sc.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.min.sci.h x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.min.sci.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.minu.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.minu.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.minu.sc.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.minu.sc.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.minu.sci.h x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.minu.sci.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.max.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.max.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.max.sc.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.max.sc.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.max.sci.h x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.max.sci.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.maxu.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.maxu.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.maxu.sc.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.maxu.sc.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.maxu.sci.h x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.maxu.sci.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.srl.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.srl.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.srl.sc.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.srl.sc.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.srl.sci.h x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.srl.sci.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sra.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sra.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sra.sc.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sra.sc.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sra.sci.h x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sra.sci.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sll.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sll.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sll.sc.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sll.sc.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sll.sci.h x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sll.sci.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.or.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.or.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.or.sc.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.or.sc.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.or.sci.h x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.or.sci.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.xor.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.xor.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.xor.sc.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.xor.sc.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.xor.sci.h x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.xor.sci.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.and.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.and.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.and.sc.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.and.sc.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.and.sci.h x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.and.sci.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.abs.h x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.abs.b x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.dotup.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.dotup.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.dotup.sc.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.dotup.sc.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.dotup.sci.h x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.dotup.sci.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.dotusp.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.dotusp.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.dotusp.sc.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.dotusp.sc.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.dotusp.sci.h x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.dotusp.sci.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.dotsp.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.dotsp.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.dotsp.sc.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.dotsp.sc.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.dotsp.sci.h x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.dotsp.sci.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sdotup.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sdotup.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sdotup.sc.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sdotup.sc.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sdotup.sci.h x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sdotup.sci.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sdotusp.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sdotusp.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sdotusp.sc.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sdotusp.sc.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sdotusp.sci.h x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sdotusp.sci.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sdotsp.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sdotsp.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sdotsp.sc.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sdotsp.sc.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sdotsp.sci.h x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sdotsp.sci.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.extract.h x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.extract.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.extractu.h x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.extractu.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.insert.h x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.insert.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.shuffle.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.shuffle.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.shuffle.sci.h x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.shufflei0.sci.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.shufflei1.sci.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.shufflei2.sci.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.shufflei3.sci.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.shuffle2.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.shuffle2.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.pack x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.pack.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.packhi.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.packlo.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpeq.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpeq.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpeq.sc.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpeq.sc.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpeq.sci.h x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpeq.sci.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpne.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpne.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpne.sc.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpne.sc.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpne.sci.h x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpne.sci.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpgt.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpgt.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpgt.sc.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpgt.sc.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpgt.sci.h x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpgt.sci.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpge.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpge.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpge.sc.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpge.sc.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpge.sci.h x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpge.sci.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmplt.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmplt.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmplt.sc.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmplt.sc.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmplt.sci.h x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmplt.sci.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmple.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmple.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmple.sc.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmple.sc.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmple.sci.h x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmple.sci.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpgtu.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpgtu.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpgtu.sc.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpgtu.sc.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpgtu.sci.h x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpgtu.sci.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpgeu.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpgeu.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpgeu.sc.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpgeu.sc.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpgeu.sci.h x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpgeu.sci.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpltu.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpltu.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpltu.sc.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpltu.sc.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpltu.sci.h x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpltu.sci.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpleu.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpleu.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpleu.sc.h x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpleu.sc.b x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpleu.sci.h x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cmpleu.sci.b x6,x7,20', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cplxmul.r x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cplxmul.i x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cplxmul.r.div2 x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cplxmul.i.div2 x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cplxmul.r.div4 x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cplxmul.i.div4 x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cplxmul.r.div8 x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cplxmul.i.div8 x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.cplxconj x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.subrotmj x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.subrotmj.div2 x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.subrotmj.div4 x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.subrotmj.div8 x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.add.div2 x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.add.div4 x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.add.div8 x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sub.div2 x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sub.div4 x5,x6,x7', extension `xcvsimd' required
+.*: Error: unrecognized opcode `cv.sub.div8 x5,x6,x7', extension `xcvsimd' required
diff --git a/gas/testsuite/gas/riscv/cv-simd-march-fail.s b/gas/testsuite/gas/riscv/cv-simd-march-fail.s
new file mode 100644
index 00000000000..046bbfece6f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-march-fail.s
@@ -0,0 +1,221 @@
+target:
+    cv.add.h x5, x6, x7
+    cv.add.b x5, x6, x7
+    cv.add.sc.h x5, x6, x7
+    cv.add.sc.b x5, x6, x7
+    cv.add.sci.h x6, x7, 20
+    cv.add.sci.b x6, x7, 20
+    cv.sub.h x5, x6, x7
+    cv.sub.b x5, x6, x7
+    cv.sub.sc.h x5, x6, x7
+    cv.sub.sc.b x5, x6, x7
+    cv.sub.sci.h x6, x7, 20
+    cv.sub.sci.b x6, x7, 20
+    cv.avg.h x5, x6, x7
+    cv.avg.b x5, x6, x7
+    cv.avg.sc.h x5, x6, x7
+    cv.avg.sc.b x5, x6, x7
+    cv.avg.sci.h x6, x7, 20
+    cv.avg.sci.b x6, x7, 20
+    cv.avgu.h x5, x6, x7
+    cv.avgu.b x5, x6, x7
+    cv.avgu.sc.h x5, x6, x7
+    cv.avgu.sc.b x5, x6, x7
+    cv.avgu.sci.h x6, x7, 20
+    cv.avgu.sci.b x6, x7, 20
+    cv.min.h x5, x6, x7
+    cv.min.b x5, x6, x7
+    cv.min.sc.h x5, x6, x7
+    cv.min.sc.b x5, x6, x7
+    cv.min.sci.h x6, x7, 20
+    cv.min.sci.b x6, x7, 20
+    cv.minu.h x5, x6, x7
+    cv.minu.b x5, x6, x7
+    cv.minu.sc.h x5, x6, x7
+    cv.minu.sc.b x5, x6, x7
+    cv.minu.sci.h x6, x7, 20
+    cv.minu.sci.b x6, x7, 20
+    cv.max.h x5, x6, x7
+    cv.max.b x5, x6, x7
+    cv.max.sc.h x5, x6, x7
+    cv.max.sc.b x5, x6, x7
+    cv.max.sci.h x6, x7, 20
+    cv.max.sci.b x6, x7, 20
+    cv.maxu.h x5, x6, x7
+    cv.maxu.b x5, x6, x7
+    cv.maxu.sc.h x5, x6, x7
+    cv.maxu.sc.b x5, x6, x7
+    cv.maxu.sci.h x6, x7, 20
+    cv.maxu.sci.b x6, x7, 20
+    cv.srl.h x5, x6, x7
+    cv.srl.b x5, x6, x7
+    cv.srl.sc.h x5, x6, x7
+    cv.srl.sc.b x5, x6, x7
+    cv.srl.sci.h x6, x7, 20
+    cv.srl.sci.b x6, x7, 20
+    cv.sra.h x5, x6, x7
+    cv.sra.b x5, x6, x7
+    cv.sra.sc.h x5, x6, x7
+    cv.sra.sc.b x5, x6, x7
+    cv.sra.sci.h x6, x7, 20
+    cv.sra.sci.b x6, x7, 20
+    cv.sll.h x5, x6, x7
+    cv.sll.b x5, x6, x7
+    cv.sll.sc.h x5, x6, x7
+    cv.sll.sc.b x5, x6, x7
+    cv.sll.sci.h x6, x7, 20
+    cv.sll.sci.b x6, x7, 20
+    cv.or.h x5, x6, x7
+    cv.or.b x5, x6, x7
+    cv.or.sc.h x5, x6, x7
+    cv.or.sc.b x5, x6, x7
+    cv.or.sci.h x6, x7, 20
+    cv.or.sci.b x6, x7, 20
+    cv.xor.h x5, x6, x7
+    cv.xor.b x5, x6, x7
+    cv.xor.sc.h x5, x6, x7
+    cv.xor.sc.b x5, x6, x7
+    cv.xor.sci.h x6, x7, 20
+    cv.xor.sci.b x6, x7, 20
+    cv.and.h x5, x6, x7
+    cv.and.b x5, x6, x7
+    cv.and.sc.h x5, x6, x7
+    cv.and.sc.b x5, x6, x7
+    cv.and.sci.h x6, x7, 20
+    cv.and.sci.b x6, x7, 20
+    cv.abs.h x6, x7
+    cv.abs.b x6, x7
+    cv.dotup.h x5, x6, x7
+    cv.dotup.b x5, x6, x7
+    cv.dotup.sc.h x5, x6, x7
+    cv.dotup.sc.b x5, x6, x7
+    cv.dotup.sci.h x6, x7, 20
+    cv.dotup.sci.b x6, x7, 20
+    cv.dotusp.h x5, x6, x7
+    cv.dotusp.b x5, x6, x7
+    cv.dotusp.sc.h x5, x6, x7
+    cv.dotusp.sc.b x5, x6, x7
+    cv.dotusp.sci.h x6, x7, 20
+    cv.dotusp.sci.b x6, x7, 20
+    cv.dotsp.h x5, x6, x7
+    cv.dotsp.b x5, x6, x7
+    cv.dotsp.sc.h x5, x6, x7
+    cv.dotsp.sc.b x5, x6, x7
+    cv.dotsp.sci.h x6, x7, 20
+    cv.dotsp.sci.b x6, x7, 20
+    cv.sdotup.h x5, x6, x7
+    cv.sdotup.b x5, x6, x7
+    cv.sdotup.sc.h x5, x6, x7
+    cv.sdotup.sc.b x5, x6, x7
+    cv.sdotup.sci.h x6, x7, 20
+    cv.sdotup.sci.b x6, x7, 20
+    cv.sdotusp.h x5, x6, x7
+    cv.sdotusp.b x5, x6, x7
+    cv.sdotusp.sc.h x5, x6, x7
+    cv.sdotusp.sc.b x5, x6, x7
+    cv.sdotusp.sci.h x6, x7, 20
+    cv.sdotusp.sci.b x6, x7, 20
+    cv.sdotsp.h x5, x6, x7
+    cv.sdotsp.b x5, x6, x7
+    cv.sdotsp.sc.h x5, x6, x7
+    cv.sdotsp.sc.b x5, x6, x7
+    cv.sdotsp.sci.h x6, x7, 20
+    cv.sdotsp.sci.b x6, x7, 20
+    cv.extract.h x6, x7, 20
+    cv.extract.b x6, x7, 20
+    cv.extractu.h x6, x7, 20
+    cv.extractu.b x6, x7, 20
+    cv.insert.h x6, x7, 20
+    cv.insert.b x6, x7, 20
+    cv.shuffle.h x5, x6, x7
+    cv.shuffle.b x5, x6, x7
+    cv.shuffle.sci.h x6, x7, 20
+    cv.shufflei0.sci.b x6, x7, 20
+    cv.shufflei1.sci.b x6, x7, 20
+    cv.shufflei2.sci.b x6, x7, 20
+    cv.shufflei3.sci.b x6, x7, 20
+    cv.shuffle2.h x5, x6, x7
+    cv.shuffle2.b x5, x6, x7
+    cv.pack x5, x6, x7
+    cv.pack.h x5, x6, x7
+    cv.packhi.b x5, x6, x7
+    cv.packlo.b x5, x6, x7
+    cv.cmpeq.h x5, x6, x7
+    cv.cmpeq.b x5, x6, x7
+    cv.cmpeq.sc.h x5, x6, x7
+    cv.cmpeq.sc.b x5, x6, x7
+    cv.cmpeq.sci.h x6, x7, 20
+    cv.cmpeq.sci.b x6, x7, 20
+    cv.cmpne.h x5, x6, x7
+    cv.cmpne.b x5, x6, x7
+    cv.cmpne.sc.h x5, x6, x7
+    cv.cmpne.sc.b x5, x6, x7
+    cv.cmpne.sci.h x6, x7, 20
+    cv.cmpne.sci.b x6, x7, 20
+    cv.cmpgt.h x5, x6, x7
+    cv.cmpgt.b x5, x6, x7
+    cv.cmpgt.sc.h x5, x6, x7
+    cv.cmpgt.sc.b x5, x6, x7
+    cv.cmpgt.sci.h x6, x7, 20
+    cv.cmpgt.sci.b x6, x7, 20
+    cv.cmpge.h x5, x6, x7
+    cv.cmpge.b x5, x6, x7
+    cv.cmpge.sc.h x5, x6, x7
+    cv.cmpge.sc.b x5, x6, x7
+    cv.cmpge.sci.h x6, x7, 20
+    cv.cmpge.sci.b x6, x7, 20
+    cv.cmplt.h x5, x6, x7
+    cv.cmplt.b x5, x6, x7
+    cv.cmplt.sc.h x5, x6, x7
+    cv.cmplt.sc.b x5, x6, x7
+    cv.cmplt.sci.h x6, x7, 20
+    cv.cmplt.sci.b x6, x7, 20
+    cv.cmple.h x5, x6, x7
+    cv.cmple.b x5, x6, x7
+    cv.cmple.sc.h x5, x6, x7
+    cv.cmple.sc.b x5, x6, x7
+    cv.cmple.sci.h x6, x7, 20
+    cv.cmple.sci.b x6, x7, 20
+    cv.cmpgtu.h x5, x6, x7
+    cv.cmpgtu.b x5, x6, x7
+    cv.cmpgtu.sc.h x5, x6, x7
+    cv.cmpgtu.sc.b x5, x6, x7
+    cv.cmpgtu.sci.h x6, x7, 20
+    cv.cmpgtu.sci.b x6, x7, 20
+    cv.cmpgeu.h x5, x6, x7
+    cv.cmpgeu.b x5, x6, x7
+    cv.cmpgeu.sc.h x5, x6, x7
+    cv.cmpgeu.sc.b x5, x6, x7
+    cv.cmpgeu.sci.h x6, x7, 20
+    cv.cmpgeu.sci.b x6, x7, 20
+    cv.cmpltu.h x5, x6, x7
+    cv.cmpltu.b x5, x6, x7
+    cv.cmpltu.sc.h x5, x6, x7
+    cv.cmpltu.sc.b x5, x6, x7
+    cv.cmpltu.sci.h x6, x7, 20
+    cv.cmpltu.sci.b x6, x7, 20
+    cv.cmpleu.h x5, x6, x7
+    cv.cmpleu.b x5, x6, x7
+    cv.cmpleu.sc.h x5, x6, x7
+    cv.cmpleu.sc.b x5, x6, x7
+    cv.cmpleu.sci.h x6, x7, 20
+    cv.cmpleu.sci.b x6, x7, 20
+    cv.cplxmul.r x5, x6, x7
+    cv.cplxmul.i x5, x6, x7
+    cv.cplxmul.r.div2 x5, x6, x7
+    cv.cplxmul.i.div2 x5, x6, x7
+    cv.cplxmul.r.div4 x5, x6, x7
+    cv.cplxmul.i.div4 x5, x6, x7
+    cv.cplxmul.r.div8 x5, x6, x7
+    cv.cplxmul.i.div8 x5, x6, x7
+    cv.cplxconj x6, x7
+    cv.subrotmj x5, x6, x7
+    cv.subrotmj.div2 x5, x6, x7
+    cv.subrotmj.div4 x5, x6, x7
+    cv.subrotmj.div8 x5, x6, x7
+    cv.add.div2 x5, x6, x7
+    cv.add.div4 x5, x6, x7
+    cv.add.div8 x5, x6, x7
+    cv.sub.div2 x5, x6, x7
+    cv.sub.div4 x5, x6, x7
+    cv.sub.div8 x5, x6, x7
diff --git a/gas/testsuite/gas/riscv/cv-simd-march-xcvsimd.d b/gas/testsuite/gas/riscv/cv-simd-march-xcvsimd.d
new file mode 100644
index 00000000000..f93175e780b
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-march-xcvsimd.d
@@ -0,0 +1,230 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-march-xcvsimd.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+[  ]+0:[ 	]+007302fb[ 	]+cv.add.h	t0,t1,t2
+[  ]+4:[ 	]+007312fb[ 	]+cv.add.b	t0,t1,t2
+[  ]+8:[ 	]+007342fb[ 	]+cv.add.sc.h	t0,t1,t2
+[  ]+c:[ 	]+007352fb[ 	]+cv.add.sc.b	t0,t1,t2
+[  ]+10:[ 	]+00a3e37b[ 	]+cv.add.sci.h	t1,t2,20
+[  ]+14:[ 	]+00a3f37b[ 	]+cv.add.sci.b	t1,t2,20
+[  ]+18:[ 	]+087302fb[ 	]+cv.sub.h	t0,t1,t2
+[  ]+1c:[ 	]+087312fb[ 	]+cv.sub.b	t0,t1,t2
+[  ]+20:[ 	]+087342fb[ 	]+cv.sub.sc.h	t0,t1,t2
+[  ]+24:[ 	]+087352fb[ 	]+cv.sub.sc.b	t0,t1,t2
+[  ]+28:[ 	]+08a3e37b[ 	]+cv.sub.sci.h	t1,t2,20
+[  ]+2c:[ 	]+08a3f37b[ 	]+cv.sub.sci.b	t1,t2,20
+[  ]+30:[ 	]+107302fb[ 	]+cv.avg.h	t0,t1,t2
+[  ]+34:[ 	]+107312fb[ 	]+cv.avg.b	t0,t1,t2
+[  ]+38:[ 	]+107342fb[ 	]+cv.avg.sc.h	t0,t1,t2
+[  ]+3c:[ 	]+107352fb[ 	]+cv.avg.sc.b	t0,t1,t2
+[  ]+40:[ 	]+10a3e37b[ 	]+cv.avg.sci.h	t1,t2,20
+[  ]+44:[ 	]+10a3f37b[ 	]+cv.avg.sci.b	t1,t2,20
+[  ]+48:[ 	]+187302fb[ 	]+cv.avgu.h	t0,t1,t2
+[  ]+4c:[ 	]+187312fb[ 	]+cv.avgu.b	t0,t1,t2
+[  ]+50:[ 	]+187342fb[ 	]+cv.avgu.sc.h	t0,t1,t2
+[  ]+54:[ 	]+187352fb[ 	]+cv.avgu.sc.b	t0,t1,t2
+[  ]+58:[ 	]+18a3e37b[ 	]+cv.avgu.sci.h	t1,t2,20
+[  ]+5c:[ 	]+18a3f37b[ 	]+cv.avgu.sci.b	t1,t2,20
+[  ]+60:[ 	]+207302fb[ 	]+cv.min.h	t0,t1,t2
+[  ]+64:[ 	]+207312fb[ 	]+cv.min.b	t0,t1,t2
+[  ]+68:[ 	]+207342fb[ 	]+cv.min.sc.h	t0,t1,t2
+[  ]+6c:[ 	]+207352fb[ 	]+cv.min.sc.b	t0,t1,t2
+[  ]+70:[ 	]+20a3e37b[ 	]+cv.min.sci.h	t1,t2,20
+[  ]+74:[ 	]+20a3f37b[ 	]+cv.min.sci.b	t1,t2,20
+[  ]+78:[ 	]+287302fb[ 	]+cv.minu.h	t0,t1,t2
+[  ]+7c:[ 	]+287312fb[ 	]+cv.minu.b	t0,t1,t2
+[  ]+80:[ 	]+287342fb[ 	]+cv.minu.sc.h	t0,t1,t2
+[  ]+84:[ 	]+287352fb[ 	]+cv.minu.sc.b	t0,t1,t2
+[  ]+88:[ 	]+28a3e37b[ 	]+cv.minu.sci.h	t1,t2,20
+[  ]+8c:[ 	]+28a3f37b[ 	]+cv.minu.sci.b	t1,t2,20
+[  ]+90:[ 	]+307302fb[ 	]+cv.max.h	t0,t1,t2
+[  ]+94:[ 	]+307312fb[ 	]+cv.max.b	t0,t1,t2
+[  ]+98:[ 	]+307342fb[ 	]+cv.max.sc.h	t0,t1,t2
+[  ]+9c:[ 	]+307352fb[ 	]+cv.max.sc.b	t0,t1,t2
+[  ]+a0:[ 	]+30a3e37b[ 	]+cv.max.sci.h	t1,t2,20
+[  ]+a4:[ 	]+30a3f37b[ 	]+cv.max.sci.b	t1,t2,20
+[  ]+a8:[ 	]+387302fb[ 	]+cv.maxu.h	t0,t1,t2
+[  ]+ac:[ 	]+387312fb[ 	]+cv.maxu.b	t0,t1,t2
+[  ]+b0:[ 	]+387342fb[ 	]+cv.maxu.sc.h	t0,t1,t2
+[  ]+b4:[ 	]+387352fb[ 	]+cv.maxu.sc.b	t0,t1,t2
+[  ]+b8:[ 	]+38a3e37b[ 	]+cv.maxu.sci.h	t1,t2,20
+[  ]+bc:[ 	]+38a3f37b[ 	]+cv.maxu.sci.b	t1,t2,20
+[  ]+c0:[ 	]+407302fb[ 	]+cv.srl.h	t0,t1,t2
+[  ]+c4:[ 	]+407312fb[ 	]+cv.srl.b	t0,t1,t2
+[  ]+c8:[ 	]+407342fb[ 	]+cv.srl.sc.h	t0,t1,t2
+[  ]+cc:[ 	]+407352fb[ 	]+cv.srl.sc.b	t0,t1,t2
+[  ]+d0:[ 	]+4063e37b[ 	]+cv.srl.sci.h	t1,t2,12
+[  ]+d4:[ 	]+4023f37b[ 	]+cv.srl.sci.b	t1,t2,4
+[  ]+d8:[ 	]+487302fb[ 	]+cv.sra.h	t0,t1,t2
+[  ]+dc:[ 	]+487312fb[ 	]+cv.sra.b	t0,t1,t2
+[  ]+e0:[ 	]+487342fb[ 	]+cv.sra.sc.h	t0,t1,t2
+[  ]+e4:[ 	]+487352fb[ 	]+cv.sra.sc.b	t0,t1,t2
+[  ]+e8:[ 	]+4863e37b[ 	]+cv.sra.sci.h	t1,t2,12
+[  ]+ec:[ 	]+4823f37b[ 	]+cv.sra.sci.b	t1,t2,4
+[  ]+f0:[ 	]+507302fb[ 	]+cv.sll.h	t0,t1,t2
+[  ]+f4:[ 	]+507312fb[ 	]+cv.sll.b	t0,t1,t2
+[  ]+f8:[ 	]+507342fb[ 	]+cv.sll.sc.h	t0,t1,t2
+[  ]+fc:[ 	]+507352fb[ 	]+cv.sll.sc.b	t0,t1,t2
+[  ]+100:[ 	]+5063e37b[ 	]+cv.sll.sci.h	t1,t2,12
+[  ]+104:[ 	]+5023f37b[ 	]+cv.sll.sci.b	t1,t2,4
+[  ]+108:[ 	]+587302fb[ 	]+cv.or.h	t0,t1,t2
+[  ]+10c:[ 	]+587312fb[ 	]+cv.or.b	t0,t1,t2
+[  ]+110:[ 	]+587342fb[ 	]+cv.or.sc.h	t0,t1,t2
+[  ]+114:[ 	]+587352fb[ 	]+cv.or.sc.b	t0,t1,t2
+[  ]+118:[ 	]+58a3e37b[ 	]+cv.or.sci.h	t1,t2,20
+[  ]+11c:[ 	]+58a3f37b[ 	]+cv.or.sci.b	t1,t2,20
+[  ]+120:[ 	]+607302fb[ 	]+cv.xor.h	t0,t1,t2
+[  ]+124:[ 	]+607312fb[ 	]+cv.xor.b	t0,t1,t2
+[  ]+128:[ 	]+607342fb[ 	]+cv.xor.sc.h	t0,t1,t2
+[  ]+12c:[ 	]+607352fb[ 	]+cv.xor.sc.b	t0,t1,t2
+[  ]+130:[ 	]+60a3e37b[ 	]+cv.xor.sci.h	t1,t2,20
+[  ]+134:[ 	]+60a3f37b[ 	]+cv.xor.sci.b	t1,t2,20
+[  ]+138:[ 	]+687302fb[ 	]+cv.and.h	t0,t1,t2
+[  ]+13c:[ 	]+687312fb[ 	]+cv.and.b	t0,t1,t2
+[  ]+140:[ 	]+687342fb[ 	]+cv.and.sc.h	t0,t1,t2
+[  ]+144:[ 	]+687352fb[ 	]+cv.and.sc.b	t0,t1,t2
+[  ]+148:[ 	]+68a3e37b[ 	]+cv.and.sci.h	t1,t2,20
+[  ]+14c:[ 	]+68a3f37b[ 	]+cv.and.sci.b	t1,t2,20
+[  ]+150:[ 	]+7003837b[ 	]+cv.abs.h	t1,t2
+[  ]+154:[ 	]+7003937b[ 	]+cv.abs.b	t1,t2
+[  ]+158:[ 	]+807302fb[ 	]+cv.dotup.h	t0,t1,t2
+[  ]+15c:[ 	]+807312fb[ 	]+cv.dotup.b	t0,t1,t2
+[  ]+160:[ 	]+807342fb[ 	]+cv.dotup.sc.h	t0,t1,t2
+[  ]+164:[ 	]+807352fb[ 	]+cv.dotup.sc.b	t0,t1,t2
+[  ]+168:[ 	]+80a3e37b[ 	]+cv.dotup.sci.h	t1,t2,20
+[  ]+16c:[ 	]+80a3f37b[ 	]+cv.dotup.sci.b	t1,t2,20
+[  ]+170:[ 	]+887302fb[ 	]+cv.dotusp.h	t0,t1,t2
+[  ]+174:[ 	]+887312fb[ 	]+cv.dotusp.b	t0,t1,t2
+[  ]+178:[ 	]+887342fb[ 	]+cv.dotusp.sc.h	t0,t1,t2
+[  ]+17c:[ 	]+887352fb[ 	]+cv.dotusp.sc.b	t0,t1,t2
+[  ]+180:[ 	]+88a3e37b[ 	]+cv.dotusp.sci.h	t1,t2,20
+[  ]+184:[ 	]+88a3f37b[ 	]+cv.dotusp.sci.b	t1,t2,20
+[  ]+188:[ 	]+907302fb[ 	]+cv.dotsp.h	t0,t1,t2
+[  ]+18c:[ 	]+907312fb[ 	]+cv.dotsp.b	t0,t1,t2
+[  ]+190:[ 	]+907342fb[ 	]+cv.dotsp.sc.h	t0,t1,t2
+[  ]+194:[ 	]+907352fb[ 	]+cv.dotsp.sc.b	t0,t1,t2
+[  ]+198:[ 	]+90a3e37b[ 	]+cv.dotsp.sci.h	t1,t2,20
+[  ]+19c:[ 	]+90a3f37b[ 	]+cv.dotsp.sci.b	t1,t2,20
+[  ]+1a0:[ 	]+987302fb[ 	]+cv.sdotup.h	t0,t1,t2
+[  ]+1a4:[ 	]+987312fb[ 	]+cv.sdotup.b	t0,t1,t2
+[  ]+1a8:[ 	]+987342fb[ 	]+cv.sdotup.sc.h	t0,t1,t2
+[  ]+1ac:[ 	]+987352fb[ 	]+cv.sdotup.sc.b	t0,t1,t2
+[  ]+1b0:[ 	]+98a3e37b[ 	]+cv.sdotup.sci.h	t1,t2,20
+[  ]+1b4:[ 	]+98a3f37b[ 	]+cv.sdotup.sci.b	t1,t2,20
+[  ]+1b8:[ 	]+a07302fb[ 	]+cv.sdotusp.h	t0,t1,t2
+[  ]+1bc:[ 	]+a07312fb[ 	]+cv.sdotusp.b	t0,t1,t2
+[  ]+1c0:[ 	]+a07342fb[ 	]+cv.sdotusp.sc.h	t0,t1,t2
+[  ]+1c4:[ 	]+a07352fb[ 	]+cv.sdotusp.sc.b	t0,t1,t2
+[  ]+1c8:[ 	]+a0a3e37b[ 	]+cv.sdotusp.sci.h	t1,t2,20
+[  ]+1cc:[ 	]+a0a3f37b[ 	]+cv.sdotusp.sci.b	t1,t2,20
+[  ]+1d0:[ 	]+a87302fb[ 	]+cv.sdotsp.h	t0,t1,t2
+[  ]+1d4:[ 	]+a87312fb[ 	]+cv.sdotsp.b	t0,t1,t2
+[  ]+1d8:[ 	]+a87342fb[ 	]+cv.sdotsp.sc.h	t0,t1,t2
+[  ]+1dc:[ 	]+a87352fb[ 	]+cv.sdotsp.sc.b	t0,t1,t2
+[  ]+1e0:[ 	]+a8a3e37b[ 	]+cv.sdotsp.sci.h	t1,t2,20
+[  ]+1e4:[ 	]+a8a3f37b[ 	]+cv.sdotsp.sci.b	t1,t2,20
+[  ]+1e8:[ 	]+ba03837b[ 	]+cv.extract.h	t1,t2,1
+[  ]+1ec:[ 	]+b813937b[ 	]+cv.extract.b	t1,t2,2
+[  ]+1f0:[ 	]+ba03a37b[ 	]+cv.extractu.h	t1,t2,1
+[  ]+1f4:[ 	]+b813b37b[ 	]+cv.extractu.b	t1,t2,2
+[  ]+1f8:[ 	]+ba03c37b[ 	]+cv.insert.h	t1,t2,1
+[  ]+1fc:[ 	]+b813d37b[ 	]+cv.insert.b	t1,t2,2
+[  ]+200:[ 	]+c07302fb[ 	]+cv.shuffle.h	t0,t1,t2
+[  ]+204:[ 	]+c07312fb[ 	]+cv.shuffle.b	t0,t1,t2
+[  ]+208:[ 	]+c0a3e37b[ 	]+cv.shuffle.sci.h	t1,t2,20
+[  ]+20c:[ 	]+c0a3f37b[ 	]+cv.shufflei0.sci.b	t1,t2,20
+[  ]+210:[ 	]+c8a3f37b[ 	]+cv.shufflei1.sci.b	t1,t2,20
+[  ]+214:[ 	]+d0a3f37b[ 	]+cv.shufflei2.sci.b	t1,t2,20
+[  ]+218:[ 	]+d8a3f37b[ 	]+cv.shufflei3.sci.b	t1,t2,20
+[  ]+21c:[ 	]+e07302fb[ 	]+cv.shuffle2.h	t0,t1,t2
+[  ]+220:[ 	]+e07312fb[ 	]+cv.shuffle2.b	t0,t1,t2
+[  ]+224:[ 	]+f07302fb[ 	]+cv.pack	t0,t1,t2
+[  ]+228:[ 	]+f27302fb[ 	]+cv.pack.h	t0,t1,t2
+[  ]+22c:[ 	]+fa7312fb[ 	]+cv.packhi.b	t0,t1,t2
+[  ]+230:[ 	]+f87312fb[ 	]+cv.packlo.b	t0,t1,t2
+[  ]+234:[ 	]+047302fb[ 	]+cv.cmpeq.h	t0,t1,t2
+[  ]+238:[ 	]+047312fb[ 	]+cv.cmpeq.b	t0,t1,t2
+[  ]+23c:[ 	]+047342fb[ 	]+cv.cmpeq.sc.h	t0,t1,t2
+[  ]+240:[ 	]+047352fb[ 	]+cv.cmpeq.sc.b	t0,t1,t2
+[  ]+244:[ 	]+04a3e37b[ 	]+cv.cmpeq.sci.h	t1,t2,20
+[  ]+248:[ 	]+04a3f37b[ 	]+cv.cmpeq.sci.b	t1,t2,20
+[  ]+24c:[ 	]+0c7302fb[ 	]+cv.cmpne.h	t0,t1,t2
+[  ]+250:[ 	]+0c7312fb[ 	]+cv.cmpne.b	t0,t1,t2
+[  ]+254:[ 	]+0c7342fb[ 	]+cv.cmpne.sc.h	t0,t1,t2
+[  ]+258:[ 	]+0c7352fb[ 	]+cv.cmpne.sc.b	t0,t1,t2
+[  ]+25c:[ 	]+0ca3e37b[ 	]+cv.cmpne.sci.h	t1,t2,20
+[  ]+260:[ 	]+0ca3f37b[ 	]+cv.cmpne.sci.b	t1,t2,20
+[  ]+264:[ 	]+147302fb[ 	]+cv.cmpgt.h	t0,t1,t2
+[  ]+268:[ 	]+147312fb[ 	]+cv.cmpgt.b	t0,t1,t2
+[  ]+26c:[ 	]+147342fb[ 	]+cv.cmpgt.sc.h	t0,t1,t2
+[  ]+270:[ 	]+147352fb[ 	]+cv.cmpgt.sc.b	t0,t1,t2
+[  ]+274:[ 	]+14a3e37b[ 	]+cv.cmpgt.sci.h	t1,t2,20
+[  ]+278:[ 	]+14a3f37b[ 	]+cv.cmpgt.sci.b	t1,t2,20
+[  ]+27c:[ 	]+1c7302fb[ 	]+cv.cmpge.h	t0,t1,t2
+[  ]+280:[ 	]+1c7312fb[ 	]+cv.cmpge.b	t0,t1,t2
+[  ]+284:[ 	]+1c7342fb[ 	]+cv.cmpge.sc.h	t0,t1,t2
+[  ]+288:[ 	]+1c7352fb[ 	]+cv.cmpge.sc.b	t0,t1,t2
+[  ]+28c:[ 	]+1ca3e37b[ 	]+cv.cmpge.sci.h	t1,t2,20
+[  ]+290:[ 	]+1ca3f37b[ 	]+cv.cmpge.sci.b	t1,t2,20
+[  ]+294:[ 	]+247302fb[ 	]+cv.cmplt.h	t0,t1,t2
+[  ]+298:[ 	]+247312fb[ 	]+cv.cmplt.b	t0,t1,t2
+[  ]+29c:[ 	]+247342fb[ 	]+cv.cmplt.sc.h	t0,t1,t2
+[  ]+2a0:[ 	]+247352fb[ 	]+cv.cmplt.sc.b	t0,t1,t2
+[  ]+2a4:[ 	]+24a3e37b[ 	]+cv.cmplt.sci.h	t1,t2,20
+[  ]+2a8:[ 	]+24a3f37b[ 	]+cv.cmplt.sci.b	t1,t2,20
+[  ]+2ac:[ 	]+2c7302fb[ 	]+cv.cmple.h	t0,t1,t2
+[  ]+2b0:[ 	]+2c7312fb[ 	]+cv.cmple.b	t0,t1,t2
+[  ]+2b4:[ 	]+2c7342fb[ 	]+cv.cmple.sc.h	t0,t1,t2
+[  ]+2b8:[ 	]+2c7352fb[ 	]+cv.cmple.sc.b	t0,t1,t2
+[  ]+2bc:[ 	]+2ca3e37b[ 	]+cv.cmple.sci.h	t1,t2,20
+[  ]+2c0:[ 	]+2ca3f37b[ 	]+cv.cmple.sci.b	t1,t2,20
+[  ]+2c4:[ 	]+347302fb[ 	]+cv.cmpgtu.h	t0,t1,t2
+[  ]+2c8:[ 	]+347312fb[ 	]+cv.cmpgtu.b	t0,t1,t2
+[  ]+2cc:[ 	]+347342fb[ 	]+cv.cmpgtu.sc.h	t0,t1,t2
+[  ]+2d0:[ 	]+347352fb[ 	]+cv.cmpgtu.sc.b	t0,t1,t2
+[  ]+2d4:[ 	]+34a3e37b[ 	]+cv.cmpgtu.sci.h	t1,t2,20
+[  ]+2d8:[ 	]+34a3f37b[ 	]+cv.cmpgtu.sci.b	t1,t2,20
+[  ]+2dc:[ 	]+3c7302fb[ 	]+cv.cmpgeu.h	t0,t1,t2
+[  ]+2e0:[ 	]+3c7312fb[ 	]+cv.cmpgeu.b	t0,t1,t2
+[  ]+2e4:[ 	]+3c7342fb[ 	]+cv.cmpgeu.sc.h	t0,t1,t2
+[  ]+2e8:[ 	]+3c7352fb[ 	]+cv.cmpgeu.sc.b	t0,t1,t2
+[  ]+2ec:[ 	]+3ca3e37b[ 	]+cv.cmpgeu.sci.h	t1,t2,20
+[  ]+2f0:[ 	]+3ca3f37b[ 	]+cv.cmpgeu.sci.b	t1,t2,20
+[  ]+2f4:[ 	]+447302fb[ 	]+cv.cmpltu.h	t0,t1,t2
+[  ]+2f8:[ 	]+447312fb[ 	]+cv.cmpltu.b	t0,t1,t2
+[  ]+2fc:[ 	]+447342fb[ 	]+cv.cmpltu.sc.h	t0,t1,t2
+[  ]+300:[ 	]+447352fb[ 	]+cv.cmpltu.sc.b	t0,t1,t2
+[  ]+304:[ 	]+44a3e37b[ 	]+cv.cmpltu.sci.h	t1,t2,20
+[  ]+308:[ 	]+44a3f37b[ 	]+cv.cmpltu.sci.b	t1,t2,20
+[  ]+30c:[ 	]+4c7302fb[ 	]+cv.cmpleu.h	t0,t1,t2
+[  ]+310:[ 	]+4c7312fb[ 	]+cv.cmpleu.b	t0,t1,t2
+[  ]+314:[ 	]+4c7342fb[ 	]+cv.cmpleu.sc.h	t0,t1,t2
+[  ]+318:[ 	]+4c7352fb[ 	]+cv.cmpleu.sc.b	t0,t1,t2
+[  ]+31c:[ 	]+4ca3e37b[ 	]+cv.cmpleu.sci.h	t1,t2,20
+[  ]+320:[ 	]+4ca3f37b[ 	]+cv.cmpleu.sci.b	t1,t2,20
+[  ]+324:[ 	]+547302fb[ 	]+cv.cplxmul.r	t0,t1,t2
+[  ]+328:[ 	]+567302fb[ 	]+cv.cplxmul.i	t0,t1,t2
+[  ]+32c:[ 	]+547322fb[ 	]+cv.cplxmul.r.div2	t0,t1,t2
+[  ]+330:[ 	]+567322fb[ 	]+cv.cplxmul.i.div2	t0,t1,t2
+[  ]+334:[ 	]+547342fb[ 	]+cv.cplxmul.r.div4	t0,t1,t2
+[  ]+338:[ 	]+567342fb[ 	]+cv.cplxmul.i.div4	t0,t1,t2
+[  ]+33c:[ 	]+547362fb[ 	]+cv.cplxmul.r.div8	t0,t1,t2
+[  ]+340:[ 	]+567362fb[ 	]+cv.cplxmul.i.div8	t0,t1,t2
+[  ]+344:[ 	]+5c03837b[ 	]+cv.cplxconj	t1,t2
+[  ]+348:[ 	]+647302fb[ 	]+cv.subrotmj	t0,t1,t2
+[  ]+34c:[ 	]+647322fb[ 	]+cv.subrotmj.div2	t0,t1,t2
+[  ]+350:[ 	]+647342fb[ 	]+cv.subrotmj.div4	t0,t1,t2
+[  ]+354:[ 	]+647362fb[ 	]+cv.subrotmj.div8	t0,t1,t2
+[  ]+358:[ 	]+6c7322fb[ 	]+cv.add.div2	t0,t1,t2
+[  ]+35c:[ 	]+6c7342fb[ 	]+cv.add.div4	t0,t1,t2
+[  ]+360:[ 	]+6c7362fb[ 	]+cv.add.div8	t0,t1,t2
+[  ]+364:[ 	]+747322fb[ 	]+cv.sub.div2	t0,t1,t2
+[  ]+368:[ 	]+747342fb[ 	]+cv.sub.div4	t0,t1,t2
+[  ]+36c:[ 	]+747362fb[ 	]+cv.sub.div8	t0,t1,t2
diff --git a/gas/testsuite/gas/riscv/cv-simd-march-xcvsimd.s b/gas/testsuite/gas/riscv/cv-simd-march-xcvsimd.s
new file mode 100644
index 00000000000..e53b0e4419d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-march-xcvsimd.s
@@ -0,0 +1,221 @@
+target:
+    cv.add.h x5, x6, x7
+    cv.add.b x5, x6, x7
+    cv.add.sc.h x5, x6, x7
+    cv.add.sc.b x5, x6, x7
+    cv.add.sci.h x6, x7, 20
+    cv.add.sci.b x6, x7, 20
+    cv.sub.h x5, x6, x7
+    cv.sub.b x5, x6, x7
+    cv.sub.sc.h x5, x6, x7
+    cv.sub.sc.b x5, x6, x7
+    cv.sub.sci.h x6, x7, 20
+    cv.sub.sci.b x6, x7, 20
+    cv.avg.h x5, x6, x7
+    cv.avg.b x5, x6, x7
+    cv.avg.sc.h x5, x6, x7
+    cv.avg.sc.b x5, x6, x7
+    cv.avg.sci.h x6, x7, 20
+    cv.avg.sci.b x6, x7, 20
+    cv.avgu.h x5, x6, x7
+    cv.avgu.b x5, x6, x7
+    cv.avgu.sc.h x5, x6, x7
+    cv.avgu.sc.b x5, x6, x7
+    cv.avgu.sci.h x6, x7, 20
+    cv.avgu.sci.b x6, x7, 20
+    cv.min.h x5, x6, x7
+    cv.min.b x5, x6, x7
+    cv.min.sc.h x5, x6, x7
+    cv.min.sc.b x5, x6, x7
+    cv.min.sci.h x6, x7, 20
+    cv.min.sci.b x6, x7, 20
+    cv.minu.h x5, x6, x7
+    cv.minu.b x5, x6, x7
+    cv.minu.sc.h x5, x6, x7
+    cv.minu.sc.b x5, x6, x7
+    cv.minu.sci.h x6, x7, 20
+    cv.minu.sci.b x6, x7, 20
+    cv.max.h x5, x6, x7
+    cv.max.b x5, x6, x7
+    cv.max.sc.h x5, x6, x7
+    cv.max.sc.b x5, x6, x7
+    cv.max.sci.h x6, x7, 20
+    cv.max.sci.b x6, x7, 20
+    cv.maxu.h x5, x6, x7
+    cv.maxu.b x5, x6, x7
+    cv.maxu.sc.h x5, x6, x7
+    cv.maxu.sc.b x5, x6, x7
+    cv.maxu.sci.h x6, x7, 20
+    cv.maxu.sci.b x6, x7, 20
+    cv.srl.h x5, x6, x7
+    cv.srl.b x5, x6, x7
+    cv.srl.sc.h x5, x6, x7
+    cv.srl.sc.b x5, x6, x7
+    cv.srl.sci.h x6, x7, 12
+    cv.srl.sci.b x6, x7, 4
+    cv.sra.h x5, x6, x7
+    cv.sra.b x5, x6, x7
+    cv.sra.sc.h x5, x6, x7
+    cv.sra.sc.b x5, x6, x7
+    cv.sra.sci.h x6, x7, 12
+    cv.sra.sci.b x6, x7, 4
+    cv.sll.h x5, x6, x7
+    cv.sll.b x5, x6, x7
+    cv.sll.sc.h x5, x6, x7
+    cv.sll.sc.b x5, x6, x7
+    cv.sll.sci.h x6, x7, 12
+    cv.sll.sci.b x6, x7, 4
+    cv.or.h x5, x6, x7
+    cv.or.b x5, x6, x7
+    cv.or.sc.h x5, x6, x7
+    cv.or.sc.b x5, x6, x7
+    cv.or.sci.h x6, x7, 20
+    cv.or.sci.b x6, x7, 20
+    cv.xor.h x5, x6, x7
+    cv.xor.b x5, x6, x7
+    cv.xor.sc.h x5, x6, x7
+    cv.xor.sc.b x5, x6, x7
+    cv.xor.sci.h x6, x7, 20
+    cv.xor.sci.b x6, x7, 20
+    cv.and.h x5, x6, x7
+    cv.and.b x5, x6, x7
+    cv.and.sc.h x5, x6, x7
+    cv.and.sc.b x5, x6, x7
+    cv.and.sci.h x6, x7, 20
+    cv.and.sci.b x6, x7, 20
+    cv.abs.h x6, x7
+    cv.abs.b x6, x7
+    cv.dotup.h x5, x6, x7
+    cv.dotup.b x5, x6, x7
+    cv.dotup.sc.h x5, x6, x7
+    cv.dotup.sc.b x5, x6, x7
+    cv.dotup.sci.h x6, x7, 20
+    cv.dotup.sci.b x6, x7, 20
+    cv.dotusp.h x5, x6, x7
+    cv.dotusp.b x5, x6, x7
+    cv.dotusp.sc.h x5, x6, x7
+    cv.dotusp.sc.b x5, x6, x7
+    cv.dotusp.sci.h x6, x7, 20
+    cv.dotusp.sci.b x6, x7, 20
+    cv.dotsp.h x5, x6, x7
+    cv.dotsp.b x5, x6, x7
+    cv.dotsp.sc.h x5, x6, x7
+    cv.dotsp.sc.b x5, x6, x7
+    cv.dotsp.sci.h x6, x7, 20
+    cv.dotsp.sci.b x6, x7, 20
+    cv.sdotup.h x5, x6, x7
+    cv.sdotup.b x5, x6, x7
+    cv.sdotup.sc.h x5, x6, x7
+    cv.sdotup.sc.b x5, x6, x7
+    cv.sdotup.sci.h x6, x7, 20
+    cv.sdotup.sci.b x6, x7, 20
+    cv.sdotusp.h x5, x6, x7
+    cv.sdotusp.b x5, x6, x7
+    cv.sdotusp.sc.h x5, x6, x7
+    cv.sdotusp.sc.b x5, x6, x7
+    cv.sdotusp.sci.h x6, x7, 20
+    cv.sdotusp.sci.b x6, x7, 20
+    cv.sdotsp.h x5, x6, x7
+    cv.sdotsp.b x5, x6, x7
+    cv.sdotsp.sc.h x5, x6, x7
+    cv.sdotsp.sc.b x5, x6, x7
+    cv.sdotsp.sci.h x6, x7, 20
+    cv.sdotsp.sci.b x6, x7, 20
+    cv.extract.h x6, x7, 1
+    cv.extract.b x6, x7, 2
+    cv.extractu.h x6, x7, 1
+    cv.extractu.b x6, x7, 2
+    cv.insert.h x6, x7, 1
+    cv.insert.b x6, x7, 2
+    cv.shuffle.h x5, x6, x7
+    cv.shuffle.b x5, x6, x7
+    cv.shuffle.sci.h x6, x7, 20
+    cv.shufflei0.sci.b x6, x7, 20
+    cv.shufflei1.sci.b x6, x7, 20
+    cv.shufflei2.sci.b x6, x7, 20
+    cv.shufflei3.sci.b x6, x7, 20
+    cv.shuffle2.h x5, x6, x7
+    cv.shuffle2.b x5, x6, x7
+    cv.pack x5, x6, x7
+    cv.pack.h x5, x6, x7
+    cv.packhi.b x5, x6, x7
+    cv.packlo.b x5, x6, x7
+    cv.cmpeq.h x5, x6, x7
+    cv.cmpeq.b x5, x6, x7
+    cv.cmpeq.sc.h x5, x6, x7
+    cv.cmpeq.sc.b x5, x6, x7
+    cv.cmpeq.sci.h x6, x7, 20
+    cv.cmpeq.sci.b x6, x7, 20
+    cv.cmpne.h x5, x6, x7
+    cv.cmpne.b x5, x6, x7
+    cv.cmpne.sc.h x5, x6, x7
+    cv.cmpne.sc.b x5, x6, x7
+    cv.cmpne.sci.h x6, x7, 20
+    cv.cmpne.sci.b x6, x7, 20
+    cv.cmpgt.h x5, x6, x7
+    cv.cmpgt.b x5, x6, x7
+    cv.cmpgt.sc.h x5, x6, x7
+    cv.cmpgt.sc.b x5, x6, x7
+    cv.cmpgt.sci.h x6, x7, 20
+    cv.cmpgt.sci.b x6, x7, 20
+    cv.cmpge.h x5, x6, x7
+    cv.cmpge.b x5, x6, x7
+    cv.cmpge.sc.h x5, x6, x7
+    cv.cmpge.sc.b x5, x6, x7
+    cv.cmpge.sci.h x6, x7, 20
+    cv.cmpge.sci.b x6, x7, 20
+    cv.cmplt.h x5, x6, x7
+    cv.cmplt.b x5, x6, x7
+    cv.cmplt.sc.h x5, x6, x7
+    cv.cmplt.sc.b x5, x6, x7
+    cv.cmplt.sci.h x6, x7, 20
+    cv.cmplt.sci.b x6, x7, 20
+    cv.cmple.h x5, x6, x7
+    cv.cmple.b x5, x6, x7
+    cv.cmple.sc.h x5, x6, x7
+    cv.cmple.sc.b x5, x6, x7
+    cv.cmple.sci.h x6, x7, 20
+    cv.cmple.sci.b x6, x7, 20
+    cv.cmpgtu.h x5, x6, x7
+    cv.cmpgtu.b x5, x6, x7
+    cv.cmpgtu.sc.h x5, x6, x7
+    cv.cmpgtu.sc.b x5, x6, x7
+    cv.cmpgtu.sci.h x6, x7, 20
+    cv.cmpgtu.sci.b x6, x7, 20
+    cv.cmpgeu.h x5, x6, x7
+    cv.cmpgeu.b x5, x6, x7
+    cv.cmpgeu.sc.h x5, x6, x7
+    cv.cmpgeu.sc.b x5, x6, x7
+    cv.cmpgeu.sci.h x6, x7, 20
+    cv.cmpgeu.sci.b x6, x7, 20
+    cv.cmpltu.h x5, x6, x7
+    cv.cmpltu.b x5, x6, x7
+    cv.cmpltu.sc.h x5, x6, x7
+    cv.cmpltu.sc.b x5, x6, x7
+    cv.cmpltu.sci.h x6, x7, 20
+    cv.cmpltu.sci.b x6, x7, 20
+    cv.cmpleu.h x5, x6, x7
+    cv.cmpleu.b x5, x6, x7
+    cv.cmpleu.sc.h x5, x6, x7
+    cv.cmpleu.sc.b x5, x6, x7
+    cv.cmpleu.sci.h x6, x7, 20
+    cv.cmpleu.sci.b x6, x7, 20
+    cv.cplxmul.r x5, x6, x7
+    cv.cplxmul.i x5, x6, x7
+    cv.cplxmul.r.div2 x5, x6, x7
+    cv.cplxmul.i.div2 x5, x6, x7
+    cv.cplxmul.r.div4 x5, x6, x7
+    cv.cplxmul.i.div4 x5, x6, x7
+    cv.cplxmul.r.div8 x5, x6, x7
+    cv.cplxmul.i.div8 x5, x6, x7
+    cv.cplxconj x6, x7
+    cv.subrotmj x5, x6, x7
+    cv.subrotmj.div2 x5, x6, x7
+    cv.subrotmj.div4 x5, x6, x7
+    cv.subrotmj.div8 x5, x6, x7
+    cv.add.div2 x5, x6, x7
+    cv.add.div4 x5, x6, x7
+    cv.add.div8 x5, x6, x7
+    cv.sub.div2 x5, x6, x7
+    cv.sub.div4 x5, x6, x7
+    cv.sub.div8 x5, x6, x7
diff --git a/gas/testsuite/gas/riscv/cv-simd-max-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-max-b-fail.d
new file mode 100644
index 00000000000..7adfdf10d87
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-max-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-max-b-fail.s
+#error_output: cv-simd-max-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-max-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-max-b-fail.l
new file mode 100644
index 00000000000..ffa9db5ce2e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-max-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.max.b x32,x32,x32'
+.*: Error: illegal operands `cv.max.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-max-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-max-b-fail.s
new file mode 100644
index 00000000000..1f635f4599c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-max-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.max.b x32, x32, x32
+    cv.max.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-max-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-max-b-pass.d
new file mode 100644
index 00000000000..994a4c89222
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-max-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-max-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	3000107b          	cv.max.b	zero,zero,zero
+   4:	301090fb          	cv.max.b	ra,ra,ra
+   8:	3021117b          	cv.max.b	sp,sp,sp
+   c:	3084147b          	cv.max.b	s0,s0,s0
+  10:	314a1a7b          	cv.max.b	s4,s4,s4
+  14:	31ff9ffb          	cv.max.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-max-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-max-b-pass.s
new file mode 100644
index 00000000000..fa8e090e21c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-max-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.max.b x0, x0, x0
+    cv.max.b x1, x1, x1
+    cv.max.b x2, x2, x2
+    cv.max.b x8, x8, x8
+    cv.max.b x20, x20, x20
+    cv.max.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-max-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-max-h-fail.d
new file mode 100644
index 00000000000..2902f67e7c2
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-max-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-max-h-fail.s
+#error_output: cv-simd-max-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-max-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-max-h-fail.l
new file mode 100644
index 00000000000..e99ba005a12
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-max-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.max.h x32,x32,x32'
+.*: Error: illegal operands `cv.max.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-max-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-max-h-fail.s
new file mode 100644
index 00000000000..6f6a9e7f71f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-max-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.max.h x32, x32, x32
+    cv.max.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-max-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-max-h-pass.d
new file mode 100644
index 00000000000..296f9e597db
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-max-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-max-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	3000007b          	cv.max.h	zero,zero,zero
+   4:	301080fb          	cv.max.h	ra,ra,ra
+   8:	3021017b          	cv.max.h	sp,sp,sp
+   c:	3084047b          	cv.max.h	s0,s0,s0
+  10:	314a0a7b          	cv.max.h	s4,s4,s4
+  14:	31ff8ffb          	cv.max.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-max-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-max-h-pass.s
new file mode 100644
index 00000000000..921d44e81f9
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-max-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.max.h x0, x0, x0
+    cv.max.h x1, x1, x1
+    cv.max.h x2, x2, x2
+    cv.max.h x8, x8, x8
+    cv.max.h x20, x20, x20
+    cv.max.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-max-sc-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-max-sc-b-fail.d
new file mode 100644
index 00000000000..200aebfe5b8
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-max-sc-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-max-sc-b-fail.s
+#error_output: cv-simd-max-sc-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-max-sc-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-max-sc-b-fail.l
new file mode 100644
index 00000000000..62bb8033164
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-max-sc-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.max.sc.b x32,x32,x32'
+.*: Error: illegal operands `cv.max.sc.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-max-sc-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-max-sc-b-fail.s
new file mode 100644
index 00000000000..7f33e07dbd3
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-max-sc-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.max.sc.b x32, x32, x32
+    cv.max.sc.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-max-sc-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-max-sc-b-pass.d
new file mode 100644
index 00000000000..f986253741c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-max-sc-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-max-sc-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	3000507b          	cv.max.sc.b	zero,zero,zero
+   4:	3010d0fb          	cv.max.sc.b	ra,ra,ra
+   8:	3021517b          	cv.max.sc.b	sp,sp,sp
+   c:	3084547b          	cv.max.sc.b	s0,s0,s0
+  10:	314a5a7b          	cv.max.sc.b	s4,s4,s4
+  14:	31ffdffb          	cv.max.sc.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-max-sc-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-max-sc-b-pass.s
new file mode 100644
index 00000000000..2d6740beec8
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-max-sc-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.max.sc.b x0, x0, x0
+    cv.max.sc.b x1, x1, x1
+    cv.max.sc.b x2, x2, x2
+    cv.max.sc.b x8, x8, x8
+    cv.max.sc.b x20, x20, x20
+    cv.max.sc.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-max-sc-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-max-sc-h-fail.d
new file mode 100644
index 00000000000..4c79df34eac
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-max-sc-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-max-sc-h-fail.s
+#error_output: cv-simd-max-sc-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-max-sc-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-max-sc-h-fail.l
new file mode 100644
index 00000000000..1b60f1d2a9b
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-max-sc-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.max.sc.h x32,x32,x32'
+.*: Error: illegal operands `cv.max.sc.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-max-sc-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-max-sc-h-fail.s
new file mode 100644
index 00000000000..ca7df25011f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-max-sc-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.max.sc.h x32, x32, x32
+    cv.max.sc.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-max-sc-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-max-sc-h-pass.d
new file mode 100644
index 00000000000..bfecf4ece42
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-max-sc-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-max-sc-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	3000407b          	cv.max.sc.h	zero,zero,zero
+   4:	3010c0fb          	cv.max.sc.h	ra,ra,ra
+   8:	3021417b          	cv.max.sc.h	sp,sp,sp
+   c:	3084447b          	cv.max.sc.h	s0,s0,s0
+  10:	314a4a7b          	cv.max.sc.h	s4,s4,s4
+  14:	31ffcffb          	cv.max.sc.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-max-sc-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-max-sc-h-pass.s
new file mode 100644
index 00000000000..316745d47bf
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-max-sc-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.max.sc.h x0, x0, x0
+    cv.max.sc.h x1, x1, x1
+    cv.max.sc.h x2, x2, x2
+    cv.max.sc.h x8, x8, x8
+    cv.max.sc.h x20, x20, x20
+    cv.max.sc.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-max-sci-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-max-sci-b-fail.d
new file mode 100644
index 00000000000..2c1fdd0fae4
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-max-sci-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-max-sci-b-fail.s
+#error_output: cv-simd-max-sci-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-max-sci-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-max-sci-b-fail.l
new file mode 100644
index 00000000000..27fd4658b42
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-max-sci-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.max.sci.b x32,x32,20'
+.*: Error: illegal operands `cv.max.sci.b x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-max-sci-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-max-sci-b-fail.s
new file mode 100644
index 00000000000..6032d61f607
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-max-sci-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.max.sci.b x32, x32, 20
+    cv.max.sci.b x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.max.sci.b x6, x7, -33
+    cv.max.sci.b x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-max-sci-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-max-sci-b-pass.d
new file mode 100644
index 00000000000..bd6d549cff1
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-max-sci-b-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-max-sci-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	30a0707b          	cv.max.sci.b	zero,zero,20
+   4:	30a0f0fb          	cv.max.sci.b	ra,ra,20
+   8:	30a1717b          	cv.max.sci.b	sp,sp,20
+   c:	30a4747b          	cv.max.sci.b	s0,s0,20
+  10:	30aa7a7b          	cv.max.sci.b	s4,s4,20
+  14:	30affffb          	cv.max.sci.b	t6,t6,20
+  18:	3103f37b          	cv.max.sci.b	t1,t2,-32
+  1c:	3003f37b          	cv.max.sci.b	t1,t2,0
+  20:	32f3f37b          	cv.max.sci.b	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-max-sci-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-max-sci-b-pass.s
new file mode 100644
index 00000000000..d8d77d998c9
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-max-sci-b-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.max.sci.b x0, x0, 20
+    cv.max.sci.b x1, x1, 20
+    cv.max.sci.b x2, x2, 20
+    cv.max.sci.b x8, x8, 20
+    cv.max.sci.b x20, x20, 20
+    cv.max.sci.b x31, x31, 20
+    #Immediate Values Test
+    cv.max.sci.b x6, x7, -32
+    cv.max.sci.b x6, x7, 0
+    cv.max.sci.b x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-max-sci-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-max-sci-h-fail.d
new file mode 100644
index 00000000000..2230bd4ed6d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-max-sci-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-max-sci-h-fail.s
+#error_output: cv-simd-max-sci-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-max-sci-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-max-sci-h-fail.l
new file mode 100644
index 00000000000..de60c07a756
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-max-sci-h-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.max.sci.h x32,x32,20'
+.*: Error: illegal operands `cv.max.sci.h x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-max-sci-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-max-sci-h-fail.s
new file mode 100644
index 00000000000..fa0a4f04737
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-max-sci-h-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.max.sci.h x32, x32, 20
+    cv.max.sci.h x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.max.sci.h x6, x7, -33
+    cv.max.sci.h x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-max-sci-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-max-sci-h-pass.d
new file mode 100644
index 00000000000..022f13aedd5
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-max-sci-h-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-max-sci-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	30a0607b          	cv.max.sci.h	zero,zero,20
+   4:	30a0e0fb          	cv.max.sci.h	ra,ra,20
+   8:	30a1617b          	cv.max.sci.h	sp,sp,20
+   c:	30a4647b          	cv.max.sci.h	s0,s0,20
+  10:	30aa6a7b          	cv.max.sci.h	s4,s4,20
+  14:	30afeffb          	cv.max.sci.h	t6,t6,20
+  18:	3103e37b          	cv.max.sci.h	t1,t2,-32
+  1c:	3003e37b          	cv.max.sci.h	t1,t2,0
+  20:	32f3e37b          	cv.max.sci.h	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-max-sci-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-max-sci-h-pass.s
new file mode 100644
index 00000000000..96fb0f76b3d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-max-sci-h-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.max.sci.h x0, x0, 20
+    cv.max.sci.h x1, x1, 20
+    cv.max.sci.h x2, x2, 20
+    cv.max.sci.h x8, x8, 20
+    cv.max.sci.h x20, x20, 20
+    cv.max.sci.h x31, x31, 20
+    #Immediate Values Test
+    cv.max.sci.h x6, x7, -32
+    cv.max.sci.h x6, x7, 0
+    cv.max.sci.h x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-maxu-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-maxu-b-fail.d
new file mode 100644
index 00000000000..ece0eb491ce
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-maxu-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-maxu-b-fail.s
+#error_output: cv-simd-maxu-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-maxu-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-maxu-b-fail.l
new file mode 100644
index 00000000000..ac57a2f9361
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-maxu-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.maxu.b x32,x32,x32'
+.*: Error: illegal operands `cv.maxu.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-maxu-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-maxu-b-fail.s
new file mode 100644
index 00000000000..6b3ba6cd3f0
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-maxu-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.maxu.b x32, x32, x32
+    cv.maxu.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-maxu-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-maxu-b-pass.d
new file mode 100644
index 00000000000..4d7a1e8ac05
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-maxu-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-maxu-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	3800107b          	cv.maxu.b	zero,zero,zero
+   4:	381090fb          	cv.maxu.b	ra,ra,ra
+   8:	3821117b          	cv.maxu.b	sp,sp,sp
+   c:	3884147b          	cv.maxu.b	s0,s0,s0
+  10:	394a1a7b          	cv.maxu.b	s4,s4,s4
+  14:	39ff9ffb          	cv.maxu.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-maxu-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-maxu-b-pass.s
new file mode 100644
index 00000000000..e37d0c77304
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-maxu-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.maxu.b x0, x0, x0
+    cv.maxu.b x1, x1, x1
+    cv.maxu.b x2, x2, x2
+    cv.maxu.b x8, x8, x8
+    cv.maxu.b x20, x20, x20
+    cv.maxu.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-maxu-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-maxu-h-fail.d
new file mode 100644
index 00000000000..60114f2669a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-maxu-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-maxu-h-fail.s
+#error_output: cv-simd-maxu-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-maxu-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-maxu-h-fail.l
new file mode 100644
index 00000000000..1d530582eaa
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-maxu-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.maxu.h x32,x32,x32'
+.*: Error: illegal operands `cv.maxu.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-maxu-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-maxu-h-fail.s
new file mode 100644
index 00000000000..ff67ae4fa88
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-maxu-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.maxu.h x32, x32, x32
+    cv.maxu.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-maxu-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-maxu-h-pass.d
new file mode 100644
index 00000000000..ebc70e75647
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-maxu-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-maxu-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	3800007b          	cv.maxu.h	zero,zero,zero
+   4:	381080fb          	cv.maxu.h	ra,ra,ra
+   8:	3821017b          	cv.maxu.h	sp,sp,sp
+   c:	3884047b          	cv.maxu.h	s0,s0,s0
+  10:	394a0a7b          	cv.maxu.h	s4,s4,s4
+  14:	39ff8ffb          	cv.maxu.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-maxu-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-maxu-h-pass.s
new file mode 100644
index 00000000000..b58ba27aa6a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-maxu-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.maxu.h x0, x0, x0
+    cv.maxu.h x1, x1, x1
+    cv.maxu.h x2, x2, x2
+    cv.maxu.h x8, x8, x8
+    cv.maxu.h x20, x20, x20
+    cv.maxu.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-maxu-sc-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-maxu-sc-b-fail.d
new file mode 100644
index 00000000000..a1da7306139
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-maxu-sc-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-maxu-sc-b-fail.s
+#error_output: cv-simd-maxu-sc-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-maxu-sc-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-maxu-sc-b-fail.l
new file mode 100644
index 00000000000..7f1928d30bd
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-maxu-sc-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.maxu.sc.b x32,x32,x32'
+.*: Error: illegal operands `cv.maxu.sc.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-maxu-sc-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-maxu-sc-b-fail.s
new file mode 100644
index 00000000000..2717beabedf
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-maxu-sc-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.maxu.sc.b x32, x32, x32
+    cv.maxu.sc.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-maxu-sc-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-maxu-sc-b-pass.d
new file mode 100644
index 00000000000..5e18aca58ac
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-maxu-sc-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-maxu-sc-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	3800507b          	cv.maxu.sc.b	zero,zero,zero
+   4:	3810d0fb          	cv.maxu.sc.b	ra,ra,ra
+   8:	3821517b          	cv.maxu.sc.b	sp,sp,sp
+   c:	3884547b          	cv.maxu.sc.b	s0,s0,s0
+  10:	394a5a7b          	cv.maxu.sc.b	s4,s4,s4
+  14:	39ffdffb          	cv.maxu.sc.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-maxu-sc-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-maxu-sc-b-pass.s
new file mode 100644
index 00000000000..8cf477b3524
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-maxu-sc-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.maxu.sc.b x0, x0, x0
+    cv.maxu.sc.b x1, x1, x1
+    cv.maxu.sc.b x2, x2, x2
+    cv.maxu.sc.b x8, x8, x8
+    cv.maxu.sc.b x20, x20, x20
+    cv.maxu.sc.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-maxu-sc-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-maxu-sc-h-fail.d
new file mode 100644
index 00000000000..91c8ef5f879
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-maxu-sc-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-maxu-sc-h-fail.s
+#error_output: cv-simd-maxu-sc-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-maxu-sc-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-maxu-sc-h-fail.l
new file mode 100644
index 00000000000..1fc68d46428
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-maxu-sc-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.maxu.sc.h x32,x32,x32'
+.*: Error: illegal operands `cv.maxu.sc.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-maxu-sc-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-maxu-sc-h-fail.s
new file mode 100644
index 00000000000..4c9c385b004
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-maxu-sc-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.maxu.sc.h x32, x32, x32
+    cv.maxu.sc.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-maxu-sc-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-maxu-sc-h-pass.d
new file mode 100644
index 00000000000..451224eea82
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-maxu-sc-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-maxu-sc-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	3800407b          	cv.maxu.sc.h	zero,zero,zero
+   4:	3810c0fb          	cv.maxu.sc.h	ra,ra,ra
+   8:	3821417b          	cv.maxu.sc.h	sp,sp,sp
+   c:	3884447b          	cv.maxu.sc.h	s0,s0,s0
+  10:	394a4a7b          	cv.maxu.sc.h	s4,s4,s4
+  14:	39ffcffb          	cv.maxu.sc.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-maxu-sc-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-maxu-sc-h-pass.s
new file mode 100644
index 00000000000..e19266ebec7
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-maxu-sc-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.maxu.sc.h x0, x0, x0
+    cv.maxu.sc.h x1, x1, x1
+    cv.maxu.sc.h x2, x2, x2
+    cv.maxu.sc.h x8, x8, x8
+    cv.maxu.sc.h x20, x20, x20
+    cv.maxu.sc.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-maxu-sci-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-maxu-sci-b-fail.d
new file mode 100644
index 00000000000..260b58a43b8
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-maxu-sci-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-maxu-sci-b-fail.s
+#error_output: cv-simd-maxu-sci-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-maxu-sci-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-maxu-sci-b-fail.l
new file mode 100644
index 00000000000..c1429c0b23c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-maxu-sci-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.maxu.sci.b x32,x32,20'
+.*: Error: illegal operands `cv.maxu.sci.b x33,x33,20'
+.*: Error: immediate value must be 6-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 6-bit unsigned, 64 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-maxu-sci-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-maxu-sci-b-fail.s
new file mode 100644
index 00000000000..982160ed302
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-maxu-sci-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.maxu.sci.b x32, x32, 20
+    cv.maxu.sci.b x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.maxu.sci.b x6, x7, -1
+    cv.maxu.sci.b x6, x7, 64
diff --git a/gas/testsuite/gas/riscv/cv-simd-maxu-sci-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-maxu-sci-b-pass.d
new file mode 100644
index 00000000000..f7e9be756a1
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-maxu-sci-b-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-maxu-sci-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	38a0707b          	cv.maxu.sci.b	zero,zero,20
+   4:	38a0f0fb          	cv.maxu.sci.b	ra,ra,20
+   8:	38a1717b          	cv.maxu.sci.b	sp,sp,20
+   c:	38a4747b          	cv.maxu.sci.b	s0,s0,20
+  10:	38aa7a7b          	cv.maxu.sci.b	s4,s4,20
+  14:	38affffb          	cv.maxu.sci.b	t6,t6,20
+  18:	3803f37b          	cv.maxu.sci.b	t1,t2,0
+  1c:	3bf3f37b          	cv.maxu.sci.b	t1,t2,63
diff --git a/gas/testsuite/gas/riscv/cv-simd-maxu-sci-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-maxu-sci-b-pass.s
new file mode 100644
index 00000000000..c1332ebe8ff
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-maxu-sci-b-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.maxu.sci.b x0, x0, 20
+    cv.maxu.sci.b x1, x1, 20
+    cv.maxu.sci.b x2, x2, 20
+    cv.maxu.sci.b x8, x8, 20
+    cv.maxu.sci.b x20, x20, 20
+    cv.maxu.sci.b x31, x31, 20
+    #Immediate Values Test
+    cv.maxu.sci.b x6, x7, 0
+    cv.maxu.sci.b x6, x7, 63
diff --git a/gas/testsuite/gas/riscv/cv-simd-maxu-sci-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-maxu-sci-h-fail.d
new file mode 100644
index 00000000000..b1841b44de2
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-maxu-sci-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-maxu-sci-h-fail.s
+#error_output: cv-simd-maxu-sci-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-maxu-sci-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-maxu-sci-h-fail.l
new file mode 100644
index 00000000000..444a3b52c41
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-maxu-sci-h-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.maxu.sci.h x32,x32,20'
+.*: Error: illegal operands `cv.maxu.sci.h x33,x33,20'
+.*: Error: immediate value must be 6-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 6-bit unsigned, 64 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-maxu-sci-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-maxu-sci-h-fail.s
new file mode 100644
index 00000000000..762754680b8
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-maxu-sci-h-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.maxu.sci.h x32, x32, 20
+    cv.maxu.sci.h x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.maxu.sci.h x6, x7, -1
+    cv.maxu.sci.h x6, x7, 64
diff --git a/gas/testsuite/gas/riscv/cv-simd-maxu-sci-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-maxu-sci-h-pass.d
new file mode 100644
index 00000000000..1510bec98f5
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-maxu-sci-h-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-maxu-sci-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	38a0607b          	cv.maxu.sci.h	zero,zero,20
+   4:	38a0e0fb          	cv.maxu.sci.h	ra,ra,20
+   8:	38a1617b          	cv.maxu.sci.h	sp,sp,20
+   c:	38a4647b          	cv.maxu.sci.h	s0,s0,20
+  10:	38aa6a7b          	cv.maxu.sci.h	s4,s4,20
+  14:	38afeffb          	cv.maxu.sci.h	t6,t6,20
+  18:	3803e37b          	cv.maxu.sci.h	t1,t2,0
+  1c:	3bf3e37b          	cv.maxu.sci.h	t1,t2,63
diff --git a/gas/testsuite/gas/riscv/cv-simd-maxu-sci-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-maxu-sci-h-pass.s
new file mode 100644
index 00000000000..af87bde6e0b
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-maxu-sci-h-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.maxu.sci.h x0, x0, 20
+    cv.maxu.sci.h x1, x1, 20
+    cv.maxu.sci.h x2, x2, 20
+    cv.maxu.sci.h x8, x8, 20
+    cv.maxu.sci.h x20, x20, 20
+    cv.maxu.sci.h x31, x31, 20
+    #Immediate Values Test
+    cv.maxu.sci.h x6, x7, 0
+    cv.maxu.sci.h x6, x7, 63
diff --git a/gas/testsuite/gas/riscv/cv-simd-min-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-min-b-fail.d
new file mode 100644
index 00000000000..8757fdd74bd
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-min-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-min-b-fail.s
+#error_output: cv-simd-min-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-min-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-min-b-fail.l
new file mode 100644
index 00000000000..3d78d2d91b8
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-min-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.min.b x32,x32,x32'
+.*: Error: illegal operands `cv.min.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-min-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-min-b-fail.s
new file mode 100644
index 00000000000..8082360d286
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-min-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.min.b x32, x32, x32
+    cv.min.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-min-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-min-b-pass.d
new file mode 100644
index 00000000000..cb238cbc7dd
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-min-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-min-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	2000107b          	cv.min.b	zero,zero,zero
+   4:	201090fb          	cv.min.b	ra,ra,ra
+   8:	2021117b          	cv.min.b	sp,sp,sp
+   c:	2084147b          	cv.min.b	s0,s0,s0
+  10:	214a1a7b          	cv.min.b	s4,s4,s4
+  14:	21ff9ffb          	cv.min.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-min-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-min-b-pass.s
new file mode 100644
index 00000000000..c84fbe1dab1
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-min-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.min.b x0, x0, x0
+    cv.min.b x1, x1, x1
+    cv.min.b x2, x2, x2
+    cv.min.b x8, x8, x8
+    cv.min.b x20, x20, x20
+    cv.min.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-min-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-min-h-fail.d
new file mode 100644
index 00000000000..fc20e7ebb77
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-min-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-min-h-fail.s
+#error_output: cv-simd-min-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-min-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-min-h-fail.l
new file mode 100644
index 00000000000..0f959466de8
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-min-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.min.h x32,x32,x32'
+.*: Error: illegal operands `cv.min.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-min-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-min-h-fail.s
new file mode 100644
index 00000000000..78716687dc0
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-min-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.min.h x32, x32, x32
+    cv.min.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-min-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-min-h-pass.d
new file mode 100644
index 00000000000..d3a67463904
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-min-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-min-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	2000007b          	cv.min.h	zero,zero,zero
+   4:	201080fb          	cv.min.h	ra,ra,ra
+   8:	2021017b          	cv.min.h	sp,sp,sp
+   c:	2084047b          	cv.min.h	s0,s0,s0
+  10:	214a0a7b          	cv.min.h	s4,s4,s4
+  14:	21ff8ffb          	cv.min.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-min-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-min-h-pass.s
new file mode 100644
index 00000000000..5e4fea6541a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-min-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.min.h x0, x0, x0
+    cv.min.h x1, x1, x1
+    cv.min.h x2, x2, x2
+    cv.min.h x8, x8, x8
+    cv.min.h x20, x20, x20
+    cv.min.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-min-sc-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-min-sc-b-fail.d
new file mode 100644
index 00000000000..1fc40b59be6
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-min-sc-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-min-sc-b-fail.s
+#error_output: cv-simd-min-sc-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-min-sc-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-min-sc-b-fail.l
new file mode 100644
index 00000000000..7f31ec02691
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-min-sc-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.min.sc.b x32,x32,x32'
+.*: Error: illegal operands `cv.min.sc.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-min-sc-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-min-sc-b-fail.s
new file mode 100644
index 00000000000..72640b42a10
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-min-sc-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.min.sc.b x32, x32, x32
+    cv.min.sc.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-min-sc-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-min-sc-b-pass.d
new file mode 100644
index 00000000000..739164a5872
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-min-sc-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-min-sc-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	2000507b          	cv.min.sc.b	zero,zero,zero
+   4:	2010d0fb          	cv.min.sc.b	ra,ra,ra
+   8:	2021517b          	cv.min.sc.b	sp,sp,sp
+   c:	2084547b          	cv.min.sc.b	s0,s0,s0
+  10:	214a5a7b          	cv.min.sc.b	s4,s4,s4
+  14:	21ffdffb          	cv.min.sc.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-min-sc-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-min-sc-b-pass.s
new file mode 100644
index 00000000000..10c7c478891
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-min-sc-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.min.sc.b x0, x0, x0
+    cv.min.sc.b x1, x1, x1
+    cv.min.sc.b x2, x2, x2
+    cv.min.sc.b x8, x8, x8
+    cv.min.sc.b x20, x20, x20
+    cv.min.sc.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-min-sc-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-min-sc-h-fail.d
new file mode 100644
index 00000000000..600b3b9b3ff
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-min-sc-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-min-sc-h-fail.s
+#error_output: cv-simd-min-sc-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-min-sc-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-min-sc-h-fail.l
new file mode 100644
index 00000000000..72ce1e76a29
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-min-sc-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.min.sc.h x32,x32,x32'
+.*: Error: illegal operands `cv.min.sc.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-min-sc-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-min-sc-h-fail.s
new file mode 100644
index 00000000000..43f9d10eaf7
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-min-sc-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.min.sc.h x32, x32, x32
+    cv.min.sc.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-min-sc-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-min-sc-h-pass.d
new file mode 100644
index 00000000000..c6361bed1fa
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-min-sc-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-min-sc-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	2000407b          	cv.min.sc.h	zero,zero,zero
+   4:	2010c0fb          	cv.min.sc.h	ra,ra,ra
+   8:	2021417b          	cv.min.sc.h	sp,sp,sp
+   c:	2084447b          	cv.min.sc.h	s0,s0,s0
+  10:	214a4a7b          	cv.min.sc.h	s4,s4,s4
+  14:	21ffcffb          	cv.min.sc.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-min-sc-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-min-sc-h-pass.s
new file mode 100644
index 00000000000..3f814f48d64
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-min-sc-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.min.sc.h x0, x0, x0
+    cv.min.sc.h x1, x1, x1
+    cv.min.sc.h x2, x2, x2
+    cv.min.sc.h x8, x8, x8
+    cv.min.sc.h x20, x20, x20
+    cv.min.sc.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-min-sci-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-min-sci-b-fail.d
new file mode 100644
index 00000000000..62b171d7856
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-min-sci-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-min-sci-b-fail.s
+#error_output: cv-simd-min-sci-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-min-sci-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-min-sci-b-fail.l
new file mode 100644
index 00000000000..204cae31c6a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-min-sci-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.min.sci.b x32,x32,20'
+.*: Error: illegal operands `cv.min.sci.b x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-min-sci-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-min-sci-b-fail.s
new file mode 100644
index 00000000000..c413ec1f281
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-min-sci-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.min.sci.b x32, x32, 20
+    cv.min.sci.b x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.min.sci.b x6, x7, -33
+    cv.min.sci.b x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-min-sci-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-min-sci-b-pass.d
new file mode 100644
index 00000000000..6c367a19365
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-min-sci-b-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-min-sci-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	20a0707b          	cv.min.sci.b	zero,zero,20
+   4:	20a0f0fb          	cv.min.sci.b	ra,ra,20
+   8:	20a1717b          	cv.min.sci.b	sp,sp,20
+   c:	20a4747b          	cv.min.sci.b	s0,s0,20
+  10:	20aa7a7b          	cv.min.sci.b	s4,s4,20
+  14:	20affffb          	cv.min.sci.b	t6,t6,20
+  18:	2103f37b          	cv.min.sci.b	t1,t2,-32
+  1c:	2003f37b          	cv.min.sci.b	t1,t2,0
+  20:	22f3f37b          	cv.min.sci.b	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-min-sci-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-min-sci-b-pass.s
new file mode 100644
index 00000000000..ce44fcea9f6
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-min-sci-b-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.min.sci.b x0, x0, 20
+    cv.min.sci.b x1, x1, 20
+    cv.min.sci.b x2, x2, 20
+    cv.min.sci.b x8, x8, 20
+    cv.min.sci.b x20, x20, 20
+    cv.min.sci.b x31, x31, 20
+    #Immediate Values Test
+    cv.min.sci.b x6, x7, -32
+    cv.min.sci.b x6, x7, 0
+    cv.min.sci.b x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-min-sci-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-min-sci-h-fail.d
new file mode 100644
index 00000000000..3af7fe1f912
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-min-sci-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-min-sci-h-fail.s
+#error_output: cv-simd-min-sci-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-min-sci-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-min-sci-h-fail.l
new file mode 100644
index 00000000000..1179f306663
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-min-sci-h-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.min.sci.h x32,x32,20'
+.*: Error: illegal operands `cv.min.sci.h x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-min-sci-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-min-sci-h-fail.s
new file mode 100644
index 00000000000..813b3cc6e1d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-min-sci-h-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.min.sci.h x32, x32, 20
+    cv.min.sci.h x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.min.sci.h x6, x7, -33
+    cv.min.sci.h x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-min-sci-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-min-sci-h-pass.d
new file mode 100644
index 00000000000..8d6d6006314
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-min-sci-h-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-min-sci-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	20a0607b          	cv.min.sci.h	zero,zero,20
+   4:	20a0e0fb          	cv.min.sci.h	ra,ra,20
+   8:	20a1617b          	cv.min.sci.h	sp,sp,20
+   c:	20a4647b          	cv.min.sci.h	s0,s0,20
+  10:	20aa6a7b          	cv.min.sci.h	s4,s4,20
+  14:	20afeffb          	cv.min.sci.h	t6,t6,20
+  18:	2103e37b          	cv.min.sci.h	t1,t2,-32
+  1c:	2003e37b          	cv.min.sci.h	t1,t2,0
+  20:	22f3e37b          	cv.min.sci.h	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-min-sci-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-min-sci-h-pass.s
new file mode 100644
index 00000000000..2a49a1c1d74
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-min-sci-h-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.min.sci.h x0, x0, 20
+    cv.min.sci.h x1, x1, 20
+    cv.min.sci.h x2, x2, 20
+    cv.min.sci.h x8, x8, 20
+    cv.min.sci.h x20, x20, 20
+    cv.min.sci.h x31, x31, 20
+    #Immediate Values Test
+    cv.min.sci.h x6, x7, -32
+    cv.min.sci.h x6, x7, 0
+    cv.min.sci.h x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-minu-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-minu-b-fail.d
new file mode 100644
index 00000000000..1849d1e58d9
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-minu-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-minu-b-fail.s
+#error_output: cv-simd-minu-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-minu-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-minu-b-fail.l
new file mode 100644
index 00000000000..9971ea8223e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-minu-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.minu.b x32,x32,x32'
+.*: Error: illegal operands `cv.minu.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-minu-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-minu-b-fail.s
new file mode 100644
index 00000000000..1a0a37ab006
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-minu-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.minu.b x32, x32, x32
+    cv.minu.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-minu-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-minu-b-pass.d
new file mode 100644
index 00000000000..8447639c467
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-minu-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-minu-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	2800107b          	cv.minu.b	zero,zero,zero
+   4:	281090fb          	cv.minu.b	ra,ra,ra
+   8:	2821117b          	cv.minu.b	sp,sp,sp
+   c:	2884147b          	cv.minu.b	s0,s0,s0
+  10:	294a1a7b          	cv.minu.b	s4,s4,s4
+  14:	29ff9ffb          	cv.minu.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-minu-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-minu-b-pass.s
new file mode 100644
index 00000000000..40c2358227c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-minu-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.minu.b x0, x0, x0
+    cv.minu.b x1, x1, x1
+    cv.minu.b x2, x2, x2
+    cv.minu.b x8, x8, x8
+    cv.minu.b x20, x20, x20
+    cv.minu.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-minu-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-minu-h-fail.d
new file mode 100644
index 00000000000..f10a6c20d8e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-minu-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-minu-h-fail.s
+#error_output: cv-simd-minu-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-minu-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-minu-h-fail.l
new file mode 100644
index 00000000000..8916337969a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-minu-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.minu.h x32,x32,x32'
+.*: Error: illegal operands `cv.minu.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-minu-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-minu-h-fail.s
new file mode 100644
index 00000000000..adac558f815
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-minu-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.minu.h x32, x32, x32
+    cv.minu.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-minu-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-minu-h-pass.d
new file mode 100644
index 00000000000..dd00cb5d9e9
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-minu-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-minu-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	2800007b          	cv.minu.h	zero,zero,zero
+   4:	281080fb          	cv.minu.h	ra,ra,ra
+   8:	2821017b          	cv.minu.h	sp,sp,sp
+   c:	2884047b          	cv.minu.h	s0,s0,s0
+  10:	294a0a7b          	cv.minu.h	s4,s4,s4
+  14:	29ff8ffb          	cv.minu.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-minu-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-minu-h-pass.s
new file mode 100644
index 00000000000..5dc4665db5b
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-minu-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.minu.h x0, x0, x0
+    cv.minu.h x1, x1, x1
+    cv.minu.h x2, x2, x2
+    cv.minu.h x8, x8, x8
+    cv.minu.h x20, x20, x20
+    cv.minu.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-minu-sc-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-minu-sc-b-fail.d
new file mode 100644
index 00000000000..865ba166c10
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-minu-sc-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-minu-sc-b-fail.s
+#error_output: cv-simd-minu-sc-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-minu-sc-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-minu-sc-b-fail.l
new file mode 100644
index 00000000000..de8c2c89c0e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-minu-sc-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.minu.sc.b x32,x32,x32'
+.*: Error: illegal operands `cv.minu.sc.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-minu-sc-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-minu-sc-b-fail.s
new file mode 100644
index 00000000000..4de7d026b80
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-minu-sc-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.minu.sc.b x32, x32, x32
+    cv.minu.sc.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-minu-sc-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-minu-sc-b-pass.d
new file mode 100644
index 00000000000..c3f33bc2649
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-minu-sc-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-minu-sc-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	2800507b          	cv.minu.sc.b	zero,zero,zero
+   4:	2810d0fb          	cv.minu.sc.b	ra,ra,ra
+   8:	2821517b          	cv.minu.sc.b	sp,sp,sp
+   c:	2884547b          	cv.minu.sc.b	s0,s0,s0
+  10:	294a5a7b          	cv.minu.sc.b	s4,s4,s4
+  14:	29ffdffb          	cv.minu.sc.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-minu-sc-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-minu-sc-b-pass.s
new file mode 100644
index 00000000000..ba273c21fff
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-minu-sc-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.minu.sc.b x0, x0, x0
+    cv.minu.sc.b x1, x1, x1
+    cv.minu.sc.b x2, x2, x2
+    cv.minu.sc.b x8, x8, x8
+    cv.minu.sc.b x20, x20, x20
+    cv.minu.sc.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-minu-sc-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-minu-sc-h-fail.d
new file mode 100644
index 00000000000..eb2298dc4cb
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-minu-sc-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-minu-sc-h-fail.s
+#error_output: cv-simd-minu-sc-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-minu-sc-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-minu-sc-h-fail.l
new file mode 100644
index 00000000000..9d66f906a9f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-minu-sc-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.minu.sc.h x32,x32,x32'
+.*: Error: illegal operands `cv.minu.sc.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-minu-sc-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-minu-sc-h-fail.s
new file mode 100644
index 00000000000..243526d32cc
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-minu-sc-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.minu.sc.h x32, x32, x32
+    cv.minu.sc.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-minu-sc-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-minu-sc-h-pass.d
new file mode 100644
index 00000000000..517459662aa
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-minu-sc-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-minu-sc-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	2800407b          	cv.minu.sc.h	zero,zero,zero
+   4:	2810c0fb          	cv.minu.sc.h	ra,ra,ra
+   8:	2821417b          	cv.minu.sc.h	sp,sp,sp
+   c:	2884447b          	cv.minu.sc.h	s0,s0,s0
+  10:	294a4a7b          	cv.minu.sc.h	s4,s4,s4
+  14:	29ffcffb          	cv.minu.sc.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-minu-sc-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-minu-sc-h-pass.s
new file mode 100644
index 00000000000..7a211d5f755
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-minu-sc-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.minu.sc.h x0, x0, x0
+    cv.minu.sc.h x1, x1, x1
+    cv.minu.sc.h x2, x2, x2
+    cv.minu.sc.h x8, x8, x8
+    cv.minu.sc.h x20, x20, x20
+    cv.minu.sc.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-minu-sci-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-minu-sci-b-fail.d
new file mode 100644
index 00000000000..644315337e3
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-minu-sci-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-minu-sci-b-fail.s
+#error_output: cv-simd-minu-sci-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-minu-sci-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-minu-sci-b-fail.l
new file mode 100644
index 00000000000..b4fd02693a2
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-minu-sci-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.minu.sci.b x32,x32,20'
+.*: Error: illegal operands `cv.minu.sci.b x33,x33,20'
+.*: Error: immediate value must be 6-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 6-bit unsigned, 64 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-minu-sci-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-minu-sci-b-fail.s
new file mode 100644
index 00000000000..a19173479d1
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-minu-sci-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.minu.sci.b x32, x32, 20
+    cv.minu.sci.b x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.minu.sci.b x6, x7, -1
+    cv.minu.sci.b x6, x7, 64
diff --git a/gas/testsuite/gas/riscv/cv-simd-minu-sci-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-minu-sci-b-pass.d
new file mode 100644
index 00000000000..37bb919f7e0
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-minu-sci-b-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-minu-sci-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	28a0707b          	cv.minu.sci.b	zero,zero,20
+   4:	28a0f0fb          	cv.minu.sci.b	ra,ra,20
+   8:	28a1717b          	cv.minu.sci.b	sp,sp,20
+   c:	28a4747b          	cv.minu.sci.b	s0,s0,20
+  10:	28aa7a7b          	cv.minu.sci.b	s4,s4,20
+  14:	28affffb          	cv.minu.sci.b	t6,t6,20
+  18:	2803f37b          	cv.minu.sci.b	t1,t2,0
+  1c:	2bf3f37b          	cv.minu.sci.b	t1,t2,63
diff --git a/gas/testsuite/gas/riscv/cv-simd-minu-sci-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-minu-sci-b-pass.s
new file mode 100644
index 00000000000..3491555ee86
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-minu-sci-b-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.minu.sci.b x0, x0, 20
+    cv.minu.sci.b x1, x1, 20
+    cv.minu.sci.b x2, x2, 20
+    cv.minu.sci.b x8, x8, 20
+    cv.minu.sci.b x20, x20, 20
+    cv.minu.sci.b x31, x31, 20
+    #Immediate Values Test
+    cv.minu.sci.b x6, x7, 0
+    cv.minu.sci.b x6, x7, 63
diff --git a/gas/testsuite/gas/riscv/cv-simd-minu-sci-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-minu-sci-h-fail.d
new file mode 100644
index 00000000000..d3d2c9e63eb
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-minu-sci-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-minu-sci-h-fail.s
+#error_output: cv-simd-minu-sci-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-minu-sci-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-minu-sci-h-fail.l
new file mode 100644
index 00000000000..0b91dab3888
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-minu-sci-h-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.minu.sci.h x32,x32,20'
+.*: Error: illegal operands `cv.minu.sci.h x33,x33,20'
+.*: Error: immediate value must be 6-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 6-bit unsigned, 64 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-minu-sci-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-minu-sci-h-fail.s
new file mode 100644
index 00000000000..1cf624ac1bc
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-minu-sci-h-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.minu.sci.h x32, x32, 20
+    cv.minu.sci.h x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.minu.sci.h x6, x7, -1
+    cv.minu.sci.h x6, x7, 64
diff --git a/gas/testsuite/gas/riscv/cv-simd-minu-sci-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-minu-sci-h-pass.d
new file mode 100644
index 00000000000..3676b051820
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-minu-sci-h-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-minu-sci-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	28a0607b          	cv.minu.sci.h	zero,zero,20
+   4:	28a0e0fb          	cv.minu.sci.h	ra,ra,20
+   8:	28a1617b          	cv.minu.sci.h	sp,sp,20
+   c:	28a4647b          	cv.minu.sci.h	s0,s0,20
+  10:	28aa6a7b          	cv.minu.sci.h	s4,s4,20
+  14:	28afeffb          	cv.minu.sci.h	t6,t6,20
+  18:	2803e37b          	cv.minu.sci.h	t1,t2,0
+  1c:	2bf3e37b          	cv.minu.sci.h	t1,t2,63
diff --git a/gas/testsuite/gas/riscv/cv-simd-minu-sci-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-minu-sci-h-pass.s
new file mode 100644
index 00000000000..39e6fd8458e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-minu-sci-h-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.minu.sci.h x0, x0, 20
+    cv.minu.sci.h x1, x1, 20
+    cv.minu.sci.h x2, x2, 20
+    cv.minu.sci.h x8, x8, 20
+    cv.minu.sci.h x20, x20, 20
+    cv.minu.sci.h x31, x31, 20
+    #Immediate Values Test
+    cv.minu.sci.h x6, x7, 0
+    cv.minu.sci.h x6, x7, 63
diff --git a/gas/testsuite/gas/riscv/cv-simd-or-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-or-b-fail.d
new file mode 100644
index 00000000000..80bd5bfdd85
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-or-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-or-b-fail.s
+#error_output: cv-simd-or-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-or-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-or-b-fail.l
new file mode 100644
index 00000000000..b74c77f5aec
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-or-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.or.b x32,x32,x32'
+.*: Error: illegal operands `cv.or.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-or-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-or-b-fail.s
new file mode 100644
index 00000000000..aa00646a951
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-or-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.or.b x32, x32, x32
+    cv.or.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-or-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-or-b-pass.d
new file mode 100644
index 00000000000..f43c9a3feeb
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-or-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-or-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	5800107b          	cv.or.b	zero,zero,zero
+   4:	581090fb          	cv.or.b	ra,ra,ra
+   8:	5821117b          	cv.or.b	sp,sp,sp
+   c:	5884147b          	cv.or.b	s0,s0,s0
+  10:	594a1a7b          	cv.or.b	s4,s4,s4
+  14:	59ff9ffb          	cv.or.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-or-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-or-b-pass.s
new file mode 100644
index 00000000000..8ef5e6ee58f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-or-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.or.b x0, x0, x0
+    cv.or.b x1, x1, x1
+    cv.or.b x2, x2, x2
+    cv.or.b x8, x8, x8
+    cv.or.b x20, x20, x20
+    cv.or.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-or-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-or-h-fail.d
new file mode 100644
index 00000000000..99835ee84bf
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-or-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-or-h-fail.s
+#error_output: cv-simd-or-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-or-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-or-h-fail.l
new file mode 100644
index 00000000000..d0c6c34792e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-or-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.or.h x32,x32,x32'
+.*: Error: illegal operands `cv.or.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-or-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-or-h-fail.s
new file mode 100644
index 00000000000..aa4d3e6949e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-or-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.or.h x32, x32, x32
+    cv.or.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-or-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-or-h-pass.d
new file mode 100644
index 00000000000..1bf40c71728
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-or-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-or-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	5800007b          	cv.or.h	zero,zero,zero
+   4:	581080fb          	cv.or.h	ra,ra,ra
+   8:	5821017b          	cv.or.h	sp,sp,sp
+   c:	5884047b          	cv.or.h	s0,s0,s0
+  10:	594a0a7b          	cv.or.h	s4,s4,s4
+  14:	59ff8ffb          	cv.or.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-or-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-or-h-pass.s
new file mode 100644
index 00000000000..51eda75e4d1
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-or-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.or.h x0, x0, x0
+    cv.or.h x1, x1, x1
+    cv.or.h x2, x2, x2
+    cv.or.h x8, x8, x8
+    cv.or.h x20, x20, x20
+    cv.or.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-or-sc-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-or-sc-b-fail.d
new file mode 100644
index 00000000000..34675446982
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-or-sc-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-or-sc-b-fail.s
+#error_output: cv-simd-or-sc-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-or-sc-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-or-sc-b-fail.l
new file mode 100644
index 00000000000..91efc3051a4
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-or-sc-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.or.sc.b x32,x32,x32'
+.*: Error: illegal operands `cv.or.sc.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-or-sc-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-or-sc-b-fail.s
new file mode 100644
index 00000000000..9376cb95a6d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-or-sc-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.or.sc.b x32, x32, x32
+    cv.or.sc.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-or-sc-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-or-sc-b-pass.d
new file mode 100644
index 00000000000..784acbb5da4
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-or-sc-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-or-sc-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	5800507b          	cv.or.sc.b	zero,zero,zero
+   4:	5810d0fb          	cv.or.sc.b	ra,ra,ra
+   8:	5821517b          	cv.or.sc.b	sp,sp,sp
+   c:	5884547b          	cv.or.sc.b	s0,s0,s0
+  10:	594a5a7b          	cv.or.sc.b	s4,s4,s4
+  14:	59ffdffb          	cv.or.sc.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-or-sc-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-or-sc-b-pass.s
new file mode 100644
index 00000000000..34cb4d3e4b6
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-or-sc-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.or.sc.b x0, x0, x0
+    cv.or.sc.b x1, x1, x1
+    cv.or.sc.b x2, x2, x2
+    cv.or.sc.b x8, x8, x8
+    cv.or.sc.b x20, x20, x20
+    cv.or.sc.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-or-sc-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-or-sc-h-fail.d
new file mode 100644
index 00000000000..000d3704839
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-or-sc-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-or-sc-h-fail.s
+#error_output: cv-simd-or-sc-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-or-sc-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-or-sc-h-fail.l
new file mode 100644
index 00000000000..18e64bd956a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-or-sc-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.or.sc.h x32,x32,x32'
+.*: Error: illegal operands `cv.or.sc.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-or-sc-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-or-sc-h-fail.s
new file mode 100644
index 00000000000..8560a8cca0b
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-or-sc-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.or.sc.h x32, x32, x32
+    cv.or.sc.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-or-sc-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-or-sc-h-pass.d
new file mode 100644
index 00000000000..5f4f09431a8
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-or-sc-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-or-sc-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	5800407b          	cv.or.sc.h	zero,zero,zero
+   4:	5810c0fb          	cv.or.sc.h	ra,ra,ra
+   8:	5821417b          	cv.or.sc.h	sp,sp,sp
+   c:	5884447b          	cv.or.sc.h	s0,s0,s0
+  10:	594a4a7b          	cv.or.sc.h	s4,s4,s4
+  14:	59ffcffb          	cv.or.sc.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-or-sc-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-or-sc-h-pass.s
new file mode 100644
index 00000000000..35f86fe31d3
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-or-sc-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.or.sc.h x0, x0, x0
+    cv.or.sc.h x1, x1, x1
+    cv.or.sc.h x2, x2, x2
+    cv.or.sc.h x8, x8, x8
+    cv.or.sc.h x20, x20, x20
+    cv.or.sc.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-or-sci-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-or-sci-b-fail.d
new file mode 100644
index 00000000000..76eed3c76df
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-or-sci-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-or-sci-b-fail.s
+#error_output: cv-simd-or-sci-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-or-sci-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-or-sci-b-fail.l
new file mode 100644
index 00000000000..475ea370e42
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-or-sci-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.or.sci.b x32,x32,20'
+.*: Error: illegal operands `cv.or.sci.b x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-or-sci-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-or-sci-b-fail.s
new file mode 100644
index 00000000000..24abb0e5b51
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-or-sci-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.or.sci.b x32, x32, 20
+    cv.or.sci.b x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.or.sci.b x6, x7, -33
+    cv.or.sci.b x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-or-sci-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-or-sci-b-pass.d
new file mode 100644
index 00000000000..a417f85956a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-or-sci-b-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-or-sci-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	58a0707b          	cv.or.sci.b	zero,zero,20
+   4:	58a0f0fb          	cv.or.sci.b	ra,ra,20
+   8:	58a1717b          	cv.or.sci.b	sp,sp,20
+   c:	58a4747b          	cv.or.sci.b	s0,s0,20
+  10:	58aa7a7b          	cv.or.sci.b	s4,s4,20
+  14:	58affffb          	cv.or.sci.b	t6,t6,20
+  18:	5903f37b          	cv.or.sci.b	t1,t2,-32
+  1c:	5803f37b          	cv.or.sci.b	t1,t2,0
+  20:	5af3f37b          	cv.or.sci.b	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-or-sci-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-or-sci-b-pass.s
new file mode 100644
index 00000000000..c7b98418cd1
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-or-sci-b-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.or.sci.b x0, x0, 20
+    cv.or.sci.b x1, x1, 20
+    cv.or.sci.b x2, x2, 20
+    cv.or.sci.b x8, x8, 20
+    cv.or.sci.b x20, x20, 20
+    cv.or.sci.b x31, x31, 20
+    #Immediate Values Test
+    cv.or.sci.b x6, x7, -32
+    cv.or.sci.b x6, x7, 0
+    cv.or.sci.b x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-or-sci-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-or-sci-h-fail.d
new file mode 100644
index 00000000000..f6b8d5920ad
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-or-sci-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-or-sci-h-fail.s
+#error_output: cv-simd-or-sci-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-or-sci-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-or-sci-h-fail.l
new file mode 100644
index 00000000000..691d6d4354b
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-or-sci-h-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.or.sci.h x32,x32,20'
+.*: Error: illegal operands `cv.or.sci.h x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-or-sci-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-or-sci-h-fail.s
new file mode 100644
index 00000000000..b7130e81f6e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-or-sci-h-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.or.sci.h x32, x32, 20
+    cv.or.sci.h x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.or.sci.h x6, x7, -33
+    cv.or.sci.h x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-or-sci-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-or-sci-h-pass.d
new file mode 100644
index 00000000000..5ec05f4c33c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-or-sci-h-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-or-sci-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	58a0607b          	cv.or.sci.h	zero,zero,20
+   4:	58a0e0fb          	cv.or.sci.h	ra,ra,20
+   8:	58a1617b          	cv.or.sci.h	sp,sp,20
+   c:	58a4647b          	cv.or.sci.h	s0,s0,20
+  10:	58aa6a7b          	cv.or.sci.h	s4,s4,20
+  14:	58afeffb          	cv.or.sci.h	t6,t6,20
+  18:	5903e37b          	cv.or.sci.h	t1,t2,-32
+  1c:	5803e37b          	cv.or.sci.h	t1,t2,0
+  20:	5af3e37b          	cv.or.sci.h	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-or-sci-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-or-sci-h-pass.s
new file mode 100644
index 00000000000..b1658bc21fd
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-or-sci-h-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.or.sci.h x0, x0, 20
+    cv.or.sci.h x1, x1, 20
+    cv.or.sci.h x2, x2, 20
+    cv.or.sci.h x8, x8, 20
+    cv.or.sci.h x20, x20, 20
+    cv.or.sci.h x31, x31, 20
+    #Immediate Values Test
+    cv.or.sci.h x6, x7, -32
+    cv.or.sci.h x6, x7, 0
+    cv.or.sci.h x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-pack-fail.d b/gas/testsuite/gas/riscv/cv-simd-pack-fail.d
new file mode 100644
index 00000000000..a2d609657c1
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-pack-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-pack-fail.s
+#error_output: cv-simd-pack-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-pack-fail.l b/gas/testsuite/gas/riscv/cv-simd-pack-fail.l
new file mode 100644
index 00000000000..9668f1f40c0
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-pack-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.pack x32,x32,x32'
+.*: Error: illegal operands `cv.pack x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-pack-fail.s b/gas/testsuite/gas/riscv/cv-simd-pack-fail.s
new file mode 100644
index 00000000000..b2bcd883301
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-pack-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.pack x32, x32, x32
+    cv.pack x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-pack-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-pack-h-fail.d
new file mode 100644
index 00000000000..07a3e2f9a21
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-pack-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-pack-h-fail.s
+#error_output: cv-simd-pack-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-pack-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-pack-h-fail.l
new file mode 100644
index 00000000000..db35aa977f5
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-pack-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.pack.h x32,x32,x32'
+.*: Error: illegal operands `cv.pack.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-pack-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-pack-h-fail.s
new file mode 100644
index 00000000000..a7632834a30
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-pack-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.pack.h x32, x32, x32
+    cv.pack.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-pack-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-pack-h-pass.d
new file mode 100644
index 00000000000..89e420c8940
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-pack-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-pack-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	f200007b          	cv.pack.h	zero,zero,zero
+   4:	f21080fb          	cv.pack.h	ra,ra,ra
+   8:	f221017b          	cv.pack.h	sp,sp,sp
+   c:	f284047b          	cv.pack.h	s0,s0,s0
+  10:	f34a0a7b          	cv.pack.h	s4,s4,s4
+  14:	f3ff8ffb          	cv.pack.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-pack-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-pack-h-pass.s
new file mode 100644
index 00000000000..4bf49c2bc8c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-pack-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.pack.h x0, x0, x0
+    cv.pack.h x1, x1, x1
+    cv.pack.h x2, x2, x2
+    cv.pack.h x8, x8, x8
+    cv.pack.h x20, x20, x20
+    cv.pack.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-pack-pass.d b/gas/testsuite/gas/riscv/cv-simd-pack-pass.d
new file mode 100644
index 00000000000..e6031015c71
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-pack-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-pack-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	f000007b          	cv.pack	zero,zero,zero
+   4:	f01080fb          	cv.pack	ra,ra,ra
+   8:	f021017b          	cv.pack	sp,sp,sp
+   c:	f084047b          	cv.pack	s0,s0,s0
+  10:	f14a0a7b          	cv.pack	s4,s4,s4
+  14:	f1ff8ffb          	cv.pack	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-pack-pass.s b/gas/testsuite/gas/riscv/cv-simd-pack-pass.s
new file mode 100644
index 00000000000..5dddf9c08d0
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-pack-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.pack x0, x0, x0
+    cv.pack x1, x1, x1
+    cv.pack x2, x2, x2
+    cv.pack x8, x8, x8
+    cv.pack x20, x20, x20
+    cv.pack x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-packhi-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-packhi-b-fail.d
new file mode 100644
index 00000000000..745dac08bc5
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-packhi-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-packhi-b-fail.s
+#error_output: cv-simd-packhi-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-packhi-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-packhi-b-fail.l
new file mode 100644
index 00000000000..60cc30ac241
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-packhi-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.packhi.b x32,x32,x32'
+.*: Error: illegal operands `cv.packhi.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-packhi-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-packhi-b-fail.s
new file mode 100644
index 00000000000..35b95425c06
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-packhi-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.packhi.b x32, x32, x32
+    cv.packhi.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-packhi-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-packhi-b-pass.d
new file mode 100644
index 00000000000..72a07bba6b5
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-packhi-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-packhi-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	fa00107b          	cv.packhi.b	zero,zero,zero
+   4:	fa1090fb          	cv.packhi.b	ra,ra,ra
+   8:	fa21117b          	cv.packhi.b	sp,sp,sp
+   c:	fa84147b          	cv.packhi.b	s0,s0,s0
+  10:	fb4a1a7b          	cv.packhi.b	s4,s4,s4
+  14:	fbff9ffb          	cv.packhi.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-packhi-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-packhi-b-pass.s
new file mode 100644
index 00000000000..e974e1daf23
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-packhi-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.packhi.b x0, x0, x0
+    cv.packhi.b x1, x1, x1
+    cv.packhi.b x2, x2, x2
+    cv.packhi.b x8, x8, x8
+    cv.packhi.b x20, x20, x20
+    cv.packhi.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-packlo-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-packlo-b-fail.d
new file mode 100644
index 00000000000..3fc6ee8c396
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-packlo-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-packlo-b-fail.s
+#error_output: cv-simd-packlo-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-packlo-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-packlo-b-fail.l
new file mode 100644
index 00000000000..1141174e9e7
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-packlo-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.packlo.b x32,x32,x32'
+.*: Error: illegal operands `cv.packlo.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-packlo-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-packlo-b-fail.s
new file mode 100644
index 00000000000..4f783ef8fa8
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-packlo-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.packlo.b x32, x32, x32
+    cv.packlo.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-packlo-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-packlo-b-pass.d
new file mode 100644
index 00000000000..bc63970192d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-packlo-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-packlo-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	f800107b          	cv.packlo.b	zero,zero,zero
+   4:	f81090fb          	cv.packlo.b	ra,ra,ra
+   8:	f821117b          	cv.packlo.b	sp,sp,sp
+   c:	f884147b          	cv.packlo.b	s0,s0,s0
+  10:	f94a1a7b          	cv.packlo.b	s4,s4,s4
+  14:	f9ff9ffb          	cv.packlo.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-packlo-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-packlo-b-pass.s
new file mode 100644
index 00000000000..827a1311583
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-packlo-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.packlo.b x0, x0, x0
+    cv.packlo.b x1, x1, x1
+    cv.packlo.b x2, x2, x2
+    cv.packlo.b x8, x8, x8
+    cv.packlo.b x20, x20, x20
+    cv.packlo.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotsp-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-sdotsp-b-fail.d
new file mode 100644
index 00000000000..80d14327e23
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotsp-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotsp-b-fail.s
+#error_output: cv-simd-sdotsp-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotsp-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-sdotsp-b-fail.l
new file mode 100644
index 00000000000..0171aeac5ed
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotsp-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sdotsp.b x32,x32,x32'
+.*: Error: illegal operands `cv.sdotsp.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotsp-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-sdotsp-b-fail.s
new file mode 100644
index 00000000000..6d9a04ee6e2
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotsp-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.sdotsp.b x32, x32, x32
+    cv.sdotsp.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotsp-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-sdotsp-b-pass.d
new file mode 100644
index 00000000000..bc4609ed8cb
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotsp-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotsp-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	a800107b          	cv.sdotsp.b	zero,zero,zero
+   4:	a81090fb          	cv.sdotsp.b	ra,ra,ra
+   8:	a821117b          	cv.sdotsp.b	sp,sp,sp
+   c:	a884147b          	cv.sdotsp.b	s0,s0,s0
+  10:	a94a1a7b          	cv.sdotsp.b	s4,s4,s4
+  14:	a9ff9ffb          	cv.sdotsp.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotsp-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-sdotsp-b-pass.s
new file mode 100644
index 00000000000..3988512f609
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotsp-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.sdotsp.b x0, x0, x0
+    cv.sdotsp.b x1, x1, x1
+    cv.sdotsp.b x2, x2, x2
+    cv.sdotsp.b x8, x8, x8
+    cv.sdotsp.b x20, x20, x20
+    cv.sdotsp.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotsp-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-sdotsp-h-fail.d
new file mode 100644
index 00000000000..821d988cd60
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotsp-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotsp-h-fail.s
+#error_output: cv-simd-sdotsp-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotsp-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-sdotsp-h-fail.l
new file mode 100644
index 00000000000..ae9b66816ae
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotsp-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sdotsp.h x32,x32,x32'
+.*: Error: illegal operands `cv.sdotsp.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotsp-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-sdotsp-h-fail.s
new file mode 100644
index 00000000000..304f1e4589c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotsp-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.sdotsp.h x32, x32, x32
+    cv.sdotsp.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotsp-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-sdotsp-h-pass.d
new file mode 100644
index 00000000000..19d7265febd
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotsp-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotsp-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	a800007b          	cv.sdotsp.h	zero,zero,zero
+   4:	a81080fb          	cv.sdotsp.h	ra,ra,ra
+   8:	a821017b          	cv.sdotsp.h	sp,sp,sp
+   c:	a884047b          	cv.sdotsp.h	s0,s0,s0
+  10:	a94a0a7b          	cv.sdotsp.h	s4,s4,s4
+  14:	a9ff8ffb          	cv.sdotsp.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotsp-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-sdotsp-h-pass.s
new file mode 100644
index 00000000000..e2bfb3aa555
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotsp-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.sdotsp.h x0, x0, x0
+    cv.sdotsp.h x1, x1, x1
+    cv.sdotsp.h x2, x2, x2
+    cv.sdotsp.h x8, x8, x8
+    cv.sdotsp.h x20, x20, x20
+    cv.sdotsp.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-b-fail.d
new file mode 100644
index 00000000000..c47123c226e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotsp-sc-b-fail.s
+#error_output: cv-simd-sdotsp-sc-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-b-fail.l
new file mode 100644
index 00000000000..020979b381c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sdotsp.sc.b x32,x32,x32'
+.*: Error: illegal operands `cv.sdotsp.sc.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-b-fail.s
new file mode 100644
index 00000000000..33e2ab91152
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.sdotsp.sc.b x32, x32, x32
+    cv.sdotsp.sc.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-b-pass.d
new file mode 100644
index 00000000000..8dd43031fdd
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotsp-sc-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	a800507b          	cv.sdotsp.sc.b	zero,zero,zero
+   4:	a810d0fb          	cv.sdotsp.sc.b	ra,ra,ra
+   8:	a821517b          	cv.sdotsp.sc.b	sp,sp,sp
+   c:	a884547b          	cv.sdotsp.sc.b	s0,s0,s0
+  10:	a94a5a7b          	cv.sdotsp.sc.b	s4,s4,s4
+  14:	a9ffdffb          	cv.sdotsp.sc.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-b-pass.s
new file mode 100644
index 00000000000..8e2c737e56f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.sdotsp.sc.b x0, x0, x0
+    cv.sdotsp.sc.b x1, x1, x1
+    cv.sdotsp.sc.b x2, x2, x2
+    cv.sdotsp.sc.b x8, x8, x8
+    cv.sdotsp.sc.b x20, x20, x20
+    cv.sdotsp.sc.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-h-fail.d
new file mode 100644
index 00000000000..2118706c8d4
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotsp-sc-h-fail.s
+#error_output: cv-simd-sdotsp-sc-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-h-fail.l
new file mode 100644
index 00000000000..8a24210b195
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sdotsp.sc.h x32,x32,x32'
+.*: Error: illegal operands `cv.sdotsp.sc.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-h-fail.s
new file mode 100644
index 00000000000..98ddf44256f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.sdotsp.sc.h x32, x32, x32
+    cv.sdotsp.sc.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-h-pass.d
new file mode 100644
index 00000000000..2df11341849
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotsp-sc-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	a800407b          	cv.sdotsp.sc.h	zero,zero,zero
+   4:	a810c0fb          	cv.sdotsp.sc.h	ra,ra,ra
+   8:	a821417b          	cv.sdotsp.sc.h	sp,sp,sp
+   c:	a884447b          	cv.sdotsp.sc.h	s0,s0,s0
+  10:	a94a4a7b          	cv.sdotsp.sc.h	s4,s4,s4
+  14:	a9ffcffb          	cv.sdotsp.sc.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-h-pass.s
new file mode 100644
index 00000000000..a50b1ecd958
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sc-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.sdotsp.sc.h x0, x0, x0
+    cv.sdotsp.sc.h x1, x1, x1
+    cv.sdotsp.sc.h x2, x2, x2
+    cv.sdotsp.sc.h x8, x8, x8
+    cv.sdotsp.sc.h x20, x20, x20
+    cv.sdotsp.sc.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-b-fail.d
new file mode 100644
index 00000000000..94bcf063687
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotsp-sci-b-fail.s
+#error_output: cv-simd-sdotsp-sci-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-b-fail.l
new file mode 100644
index 00000000000..39f53beb9c3
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sdotsp.sci.b x32,x32,20'
+.*: Error: illegal operands `cv.sdotsp.sci.b x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-b-fail.s
new file mode 100644
index 00000000000..31909d81531
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.sdotsp.sci.b x32, x32, 20
+    cv.sdotsp.sci.b x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.sdotsp.sci.b x6, x7, -33
+    cv.sdotsp.sci.b x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-b-pass.d
new file mode 100644
index 00000000000..0e51830b652
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-b-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotsp-sci-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	a8a0707b          	cv.sdotsp.sci.b	zero,zero,20
+   4:	a8a0f0fb          	cv.sdotsp.sci.b	ra,ra,20
+   8:	a8a1717b          	cv.sdotsp.sci.b	sp,sp,20
+   c:	a8a4747b          	cv.sdotsp.sci.b	s0,s0,20
+  10:	a8aa7a7b          	cv.sdotsp.sci.b	s4,s4,20
+  14:	a8affffb          	cv.sdotsp.sci.b	t6,t6,20
+  18:	a903f37b          	cv.sdotsp.sci.b	t1,t2,-32
+  1c:	a803f37b          	cv.sdotsp.sci.b	t1,t2,0
+  20:	aaf3f37b          	cv.sdotsp.sci.b	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-b-pass.s
new file mode 100644
index 00000000000..ae47ef6ca34
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-b-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.sdotsp.sci.b x0, x0, 20
+    cv.sdotsp.sci.b x1, x1, 20
+    cv.sdotsp.sci.b x2, x2, 20
+    cv.sdotsp.sci.b x8, x8, 20
+    cv.sdotsp.sci.b x20, x20, 20
+    cv.sdotsp.sci.b x31, x31, 20
+    #Immediate Values Test
+    cv.sdotsp.sci.b x6, x7, -32
+    cv.sdotsp.sci.b x6, x7, 0
+    cv.sdotsp.sci.b x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-h-fail.d
new file mode 100644
index 00000000000..67509879f4c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotsp-sci-h-fail.s
+#error_output: cv-simd-sdotsp-sci-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-h-fail.l
new file mode 100644
index 00000000000..28dda486916
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-h-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sdotsp.sci.h x32,x32,20'
+.*: Error: illegal operands `cv.sdotsp.sci.h x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-h-fail.s
new file mode 100644
index 00000000000..643aee4a38c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-h-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.sdotsp.sci.h x32, x32, 20
+    cv.sdotsp.sci.h x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.sdotsp.sci.h x6, x7, -33
+    cv.sdotsp.sci.h x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-h-pass.d
new file mode 100644
index 00000000000..6c7cbf53c2d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-h-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotsp-sci-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	a8a0607b          	cv.sdotsp.sci.h	zero,zero,20
+   4:	a8a0e0fb          	cv.sdotsp.sci.h	ra,ra,20
+   8:	a8a1617b          	cv.sdotsp.sci.h	sp,sp,20
+   c:	a8a4647b          	cv.sdotsp.sci.h	s0,s0,20
+  10:	a8aa6a7b          	cv.sdotsp.sci.h	s4,s4,20
+  14:	a8afeffb          	cv.sdotsp.sci.h	t6,t6,20
+  18:	a903e37b          	cv.sdotsp.sci.h	t1,t2,-32
+  1c:	a803e37b          	cv.sdotsp.sci.h	t1,t2,0
+  20:	aaf3e37b          	cv.sdotsp.sci.h	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-h-pass.s
new file mode 100644
index 00000000000..72299328f80
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotsp-sci-h-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.sdotsp.sci.h x0, x0, 20
+    cv.sdotsp.sci.h x1, x1, 20
+    cv.sdotsp.sci.h x2, x2, 20
+    cv.sdotsp.sci.h x8, x8, 20
+    cv.sdotsp.sci.h x20, x20, 20
+    cv.sdotsp.sci.h x31, x31, 20
+    #Immediate Values Test
+    cv.sdotsp.sci.h x6, x7, -32
+    cv.sdotsp.sci.h x6, x7, 0
+    cv.sdotsp.sci.h x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotup-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-sdotup-b-fail.d
new file mode 100644
index 00000000000..2a54817d10f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotup-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotup-b-fail.s
+#error_output: cv-simd-sdotup-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotup-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-sdotup-b-fail.l
new file mode 100644
index 00000000000..0230952e061
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotup-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sdotup.b x32,x32,x32'
+.*: Error: illegal operands `cv.sdotup.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotup-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-sdotup-b-fail.s
new file mode 100644
index 00000000000..7aca3c0f6d8
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotup-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.sdotup.b x32, x32, x32
+    cv.sdotup.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotup-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-sdotup-b-pass.d
new file mode 100644
index 00000000000..a14a4946c93
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotup-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotup-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	9800107b          	cv.sdotup.b	zero,zero,zero
+   4:	981090fb          	cv.sdotup.b	ra,ra,ra
+   8:	9821117b          	cv.sdotup.b	sp,sp,sp
+   c:	9884147b          	cv.sdotup.b	s0,s0,s0
+  10:	994a1a7b          	cv.sdotup.b	s4,s4,s4
+  14:	99ff9ffb          	cv.sdotup.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotup-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-sdotup-b-pass.s
new file mode 100644
index 00000000000..b91d0e02d22
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotup-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.sdotup.b x0, x0, x0
+    cv.sdotup.b x1, x1, x1
+    cv.sdotup.b x2, x2, x2
+    cv.sdotup.b x8, x8, x8
+    cv.sdotup.b x20, x20, x20
+    cv.sdotup.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotup-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-sdotup-h-fail.d
new file mode 100644
index 00000000000..b40273bff97
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotup-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotup-h-fail.s
+#error_output: cv-simd-sdotup-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotup-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-sdotup-h-fail.l
new file mode 100644
index 00000000000..cb56228f18c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotup-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sdotup.h x32,x32,x32'
+.*: Error: illegal operands `cv.sdotup.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotup-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-sdotup-h-fail.s
new file mode 100644
index 00000000000..02ba76549c1
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotup-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.sdotup.h x32, x32, x32
+    cv.sdotup.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotup-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-sdotup-h-pass.d
new file mode 100644
index 00000000000..31b1afe8888
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotup-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotup-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	9800007b          	cv.sdotup.h	zero,zero,zero
+   4:	981080fb          	cv.sdotup.h	ra,ra,ra
+   8:	9821017b          	cv.sdotup.h	sp,sp,sp
+   c:	9884047b          	cv.sdotup.h	s0,s0,s0
+  10:	994a0a7b          	cv.sdotup.h	s4,s4,s4
+  14:	99ff8ffb          	cv.sdotup.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotup-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-sdotup-h-pass.s
new file mode 100644
index 00000000000..5bcbb33bac2
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotup-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.sdotup.h x0, x0, x0
+    cv.sdotup.h x1, x1, x1
+    cv.sdotup.h x2, x2, x2
+    cv.sdotup.h x8, x8, x8
+    cv.sdotup.h x20, x20, x20
+    cv.sdotup.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotup-sc-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-sdotup-sc-b-fail.d
new file mode 100644
index 00000000000..631daae5343
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotup-sc-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotup-sc-b-fail.s
+#error_output: cv-simd-sdotup-sc-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotup-sc-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-sdotup-sc-b-fail.l
new file mode 100644
index 00000000000..79ebb6da0ac
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotup-sc-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sdotup.sc.b x32,x32,x32'
+.*: Error: illegal operands `cv.sdotup.sc.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotup-sc-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-sdotup-sc-b-fail.s
new file mode 100644
index 00000000000..8c007fc84b6
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotup-sc-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.sdotup.sc.b x32, x32, x32
+    cv.sdotup.sc.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotup-sc-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-sdotup-sc-b-pass.d
new file mode 100644
index 00000000000..ac08c73d9a0
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotup-sc-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotup-sc-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	9800507b          	cv.sdotup.sc.b	zero,zero,zero
+   4:	9810d0fb          	cv.sdotup.sc.b	ra,ra,ra
+   8:	9821517b          	cv.sdotup.sc.b	sp,sp,sp
+   c:	9884547b          	cv.sdotup.sc.b	s0,s0,s0
+  10:	994a5a7b          	cv.sdotup.sc.b	s4,s4,s4
+  14:	99ffdffb          	cv.sdotup.sc.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotup-sc-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-sdotup-sc-b-pass.s
new file mode 100644
index 00000000000..506bc5089c6
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotup-sc-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.sdotup.sc.b x0, x0, x0
+    cv.sdotup.sc.b x1, x1, x1
+    cv.sdotup.sc.b x2, x2, x2
+    cv.sdotup.sc.b x8, x8, x8
+    cv.sdotup.sc.b x20, x20, x20
+    cv.sdotup.sc.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotup-sc-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-sdotup-sc-h-fail.d
new file mode 100644
index 00000000000..a9582cb71b8
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotup-sc-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotup-sc-h-fail.s
+#error_output: cv-simd-sdotup-sc-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotup-sc-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-sdotup-sc-h-fail.l
new file mode 100644
index 00000000000..c770ee8f30d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotup-sc-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sdotup.sc.h x32,x32,x32'
+.*: Error: illegal operands `cv.sdotup.sc.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotup-sc-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-sdotup-sc-h-fail.s
new file mode 100644
index 00000000000..5e026134914
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotup-sc-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.sdotup.sc.h x32, x32, x32
+    cv.sdotup.sc.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotup-sc-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-sdotup-sc-h-pass.d
new file mode 100644
index 00000000000..6514df356a5
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotup-sc-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotup-sc-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	9800407b          	cv.sdotup.sc.h	zero,zero,zero
+   4:	9810c0fb          	cv.sdotup.sc.h	ra,ra,ra
+   8:	9821417b          	cv.sdotup.sc.h	sp,sp,sp
+   c:	9884447b          	cv.sdotup.sc.h	s0,s0,s0
+  10:	994a4a7b          	cv.sdotup.sc.h	s4,s4,s4
+  14:	99ffcffb          	cv.sdotup.sc.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotup-sc-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-sdotup-sc-h-pass.s
new file mode 100644
index 00000000000..5d5148c9450
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotup-sc-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.sdotup.sc.h x0, x0, x0
+    cv.sdotup.sc.h x1, x1, x1
+    cv.sdotup.sc.h x2, x2, x2
+    cv.sdotup.sc.h x8, x8, x8
+    cv.sdotup.sc.h x20, x20, x20
+    cv.sdotup.sc.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotup-sci-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-sdotup-sci-b-fail.d
new file mode 100644
index 00000000000..b546567f5aa
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotup-sci-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotup-sci-b-fail.s
+#error_output: cv-simd-sdotup-sci-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotup-sci-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-sdotup-sci-b-fail.l
new file mode 100644
index 00000000000..961bb876c3b
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotup-sci-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sdotup.sci.b x32,x32,20'
+.*: Error: illegal operands `cv.sdotup.sci.b x33,x33,20'
+.*: Error: immediate value must be 6-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 6-bit unsigned, 64 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotup-sci-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-sdotup-sci-b-fail.s
new file mode 100644
index 00000000000..10b8cf83ad7
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotup-sci-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.sdotup.sci.b x32, x32, 20
+    cv.sdotup.sci.b x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.sdotup.sci.b x6, x7, -1
+    cv.sdotup.sci.b x6, x7, 64
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotup-sci-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-sdotup-sci-b-pass.d
new file mode 100644
index 00000000000..e5e1d87ef90
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotup-sci-b-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotup-sci-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	98a0707b          	cv.sdotup.sci.b	zero,zero,20
+   4:	98a0f0fb          	cv.sdotup.sci.b	ra,ra,20
+   8:	98a1717b          	cv.sdotup.sci.b	sp,sp,20
+   c:	98a4747b          	cv.sdotup.sci.b	s0,s0,20
+  10:	98aa7a7b          	cv.sdotup.sci.b	s4,s4,20
+  14:	98affffb          	cv.sdotup.sci.b	t6,t6,20
+  18:	9803f37b          	cv.sdotup.sci.b	t1,t2,0
+  1c:	9bf3f37b          	cv.sdotup.sci.b	t1,t2,63
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotup-sci-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-sdotup-sci-b-pass.s
new file mode 100644
index 00000000000..71c6845d331
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotup-sci-b-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.sdotup.sci.b x0, x0, 20
+    cv.sdotup.sci.b x1, x1, 20
+    cv.sdotup.sci.b x2, x2, 20
+    cv.sdotup.sci.b x8, x8, 20
+    cv.sdotup.sci.b x20, x20, 20
+    cv.sdotup.sci.b x31, x31, 20
+    #Immediate Values Test
+    cv.sdotup.sci.b x6, x7, 0
+    cv.sdotup.sci.b x6, x7, 63
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotup-sci-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-sdotup-sci-h-fail.d
new file mode 100644
index 00000000000..e215f69ae48
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotup-sci-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotup-sci-h-fail.s
+#error_output: cv-simd-sdotup-sci-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotup-sci-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-sdotup-sci-h-fail.l
new file mode 100644
index 00000000000..323e89fe522
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotup-sci-h-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sdotup.sci.h x32,x32,20'
+.*: Error: illegal operands `cv.sdotup.sci.h x33,x33,20'
+.*: Error: immediate value must be 6-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 6-bit unsigned, 64 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotup-sci-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-sdotup-sci-h-fail.s
new file mode 100644
index 00000000000..967ab987688
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotup-sci-h-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.sdotup.sci.h x32, x32, 20
+    cv.sdotup.sci.h x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.sdotup.sci.h x6, x7, -1
+    cv.sdotup.sci.h x6, x7, 64
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotup-sci-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-sdotup-sci-h-pass.d
new file mode 100644
index 00000000000..6f82a62dc66
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotup-sci-h-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotup-sci-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	98a0607b          	cv.sdotup.sci.h	zero,zero,20
+   4:	98a0e0fb          	cv.sdotup.sci.h	ra,ra,20
+   8:	98a1617b          	cv.sdotup.sci.h	sp,sp,20
+   c:	98a4647b          	cv.sdotup.sci.h	s0,s0,20
+  10:	98aa6a7b          	cv.sdotup.sci.h	s4,s4,20
+  14:	98afeffb          	cv.sdotup.sci.h	t6,t6,20
+  18:	9803e37b          	cv.sdotup.sci.h	t1,t2,0
+  1c:	9bf3e37b          	cv.sdotup.sci.h	t1,t2,63
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotup-sci-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-sdotup-sci-h-pass.s
new file mode 100644
index 00000000000..c80cc696f78
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotup-sci-h-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.sdotup.sci.h x0, x0, 20
+    cv.sdotup.sci.h x1, x1, 20
+    cv.sdotup.sci.h x2, x2, 20
+    cv.sdotup.sci.h x8, x8, 20
+    cv.sdotup.sci.h x20, x20, 20
+    cv.sdotup.sci.h x31, x31, 20
+    #Immediate Values Test
+    cv.sdotup.sci.h x6, x7, 0
+    cv.sdotup.sci.h x6, x7, 63
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotusp-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-sdotusp-b-fail.d
new file mode 100644
index 00000000000..071fb82c15a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotusp-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotusp-b-fail.s
+#error_output: cv-simd-sdotusp-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotusp-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-sdotusp-b-fail.l
new file mode 100644
index 00000000000..7488a3d54a6
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotusp-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sdotusp.b x32,x32,x32'
+.*: Error: illegal operands `cv.sdotusp.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotusp-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-sdotusp-b-fail.s
new file mode 100644
index 00000000000..2202c634a26
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotusp-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.sdotusp.b x32, x32, x32
+    cv.sdotusp.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotusp-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-sdotusp-b-pass.d
new file mode 100644
index 00000000000..4ae36a515a8
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotusp-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotusp-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	a000107b          	cv.sdotusp.b	zero,zero,zero
+   4:	a01090fb          	cv.sdotusp.b	ra,ra,ra
+   8:	a021117b          	cv.sdotusp.b	sp,sp,sp
+   c:	a084147b          	cv.sdotusp.b	s0,s0,s0
+  10:	a14a1a7b          	cv.sdotusp.b	s4,s4,s4
+  14:	a1ff9ffb          	cv.sdotusp.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotusp-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-sdotusp-b-pass.s
new file mode 100644
index 00000000000..6b461f1130c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotusp-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.sdotusp.b x0, x0, x0
+    cv.sdotusp.b x1, x1, x1
+    cv.sdotusp.b x2, x2, x2
+    cv.sdotusp.b x8, x8, x8
+    cv.sdotusp.b x20, x20, x20
+    cv.sdotusp.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotusp-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-sdotusp-h-fail.d
new file mode 100644
index 00000000000..d2951d6a703
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotusp-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotusp-h-fail.s
+#error_output: cv-simd-sdotusp-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotusp-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-sdotusp-h-fail.l
new file mode 100644
index 00000000000..82883936dea
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotusp-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sdotusp.h x32,x32,x32'
+.*: Error: illegal operands `cv.sdotusp.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotusp-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-sdotusp-h-fail.s
new file mode 100644
index 00000000000..4740b6e0adf
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotusp-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.sdotusp.h x32, x32, x32
+    cv.sdotusp.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotusp-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-sdotusp-h-pass.d
new file mode 100644
index 00000000000..47a5bbf8c87
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotusp-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotusp-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	a000007b          	cv.sdotusp.h	zero,zero,zero
+   4:	a01080fb          	cv.sdotusp.h	ra,ra,ra
+   8:	a021017b          	cv.sdotusp.h	sp,sp,sp
+   c:	a084047b          	cv.sdotusp.h	s0,s0,s0
+  10:	a14a0a7b          	cv.sdotusp.h	s4,s4,s4
+  14:	a1ff8ffb          	cv.sdotusp.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotusp-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-sdotusp-h-pass.s
new file mode 100644
index 00000000000..f637546bce5
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotusp-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.sdotusp.h x0, x0, x0
+    cv.sdotusp.h x1, x1, x1
+    cv.sdotusp.h x2, x2, x2
+    cv.sdotusp.h x8, x8, x8
+    cv.sdotusp.h x20, x20, x20
+    cv.sdotusp.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-b-fail.d
new file mode 100644
index 00000000000..dc4a9da6b59
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotusp-sc-b-fail.s
+#error_output: cv-simd-sdotusp-sc-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-b-fail.l
new file mode 100644
index 00000000000..0224aea1c52
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sdotusp.sc.b x32,x32,x32'
+.*: Error: illegal operands `cv.sdotusp.sc.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-b-fail.s
new file mode 100644
index 00000000000..6a876909951
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.sdotusp.sc.b x32, x32, x32
+    cv.sdotusp.sc.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-b-pass.d
new file mode 100644
index 00000000000..9a88454cbc4
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotusp-sc-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	a000507b          	cv.sdotusp.sc.b	zero,zero,zero
+   4:	a010d0fb          	cv.sdotusp.sc.b	ra,ra,ra
+   8:	a021517b          	cv.sdotusp.sc.b	sp,sp,sp
+   c:	a084547b          	cv.sdotusp.sc.b	s0,s0,s0
+  10:	a14a5a7b          	cv.sdotusp.sc.b	s4,s4,s4
+  14:	a1ffdffb          	cv.sdotusp.sc.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-b-pass.s
new file mode 100644
index 00000000000..6f8f2081cc7
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.sdotusp.sc.b x0, x0, x0
+    cv.sdotusp.sc.b x1, x1, x1
+    cv.sdotusp.sc.b x2, x2, x2
+    cv.sdotusp.sc.b x8, x8, x8
+    cv.sdotusp.sc.b x20, x20, x20
+    cv.sdotusp.sc.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-h-fail.d
new file mode 100644
index 00000000000..1f88d60190d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotusp-sc-h-fail.s
+#error_output: cv-simd-sdotusp-sc-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-h-fail.l
new file mode 100644
index 00000000000..9f55f7dc75d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sdotusp.sc.h x32,x32,x32'
+.*: Error: illegal operands `cv.sdotusp.sc.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-h-fail.s
new file mode 100644
index 00000000000..a9a7a932113
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.sdotusp.sc.h x32, x32, x32
+    cv.sdotusp.sc.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-h-pass.d
new file mode 100644
index 00000000000..d95de772535
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotusp-sc-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	a000407b          	cv.sdotusp.sc.h	zero,zero,zero
+   4:	a010c0fb          	cv.sdotusp.sc.h	ra,ra,ra
+   8:	a021417b          	cv.sdotusp.sc.h	sp,sp,sp
+   c:	a084447b          	cv.sdotusp.sc.h	s0,s0,s0
+  10:	a14a4a7b          	cv.sdotusp.sc.h	s4,s4,s4
+  14:	a1ffcffb          	cv.sdotusp.sc.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-h-pass.s
new file mode 100644
index 00000000000..52a0fefedd3
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sc-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.sdotusp.sc.h x0, x0, x0
+    cv.sdotusp.sc.h x1, x1, x1
+    cv.sdotusp.sc.h x2, x2, x2
+    cv.sdotusp.sc.h x8, x8, x8
+    cv.sdotusp.sc.h x20, x20, x20
+    cv.sdotusp.sc.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-b-fail.d
new file mode 100644
index 00000000000..6fcc866dbff
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotusp-sci-b-fail.s
+#error_output: cv-simd-sdotusp-sci-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-b-fail.l
new file mode 100644
index 00000000000..efd927e7658
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sdotusp.sci.b x32,x32,20'
+.*: Error: illegal operands `cv.sdotusp.sci.b x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-b-fail.s
new file mode 100644
index 00000000000..35ab2fbe03d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.sdotusp.sci.b x32, x32, 20
+    cv.sdotusp.sci.b x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.sdotusp.sci.b x6, x7, -33
+    cv.sdotusp.sci.b x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-b-pass.d
new file mode 100644
index 00000000000..3c8d95ec868
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-b-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotusp-sci-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	a0a0707b          	cv.sdotusp.sci.b	zero,zero,20
+   4:	a0a0f0fb          	cv.sdotusp.sci.b	ra,ra,20
+   8:	a0a1717b          	cv.sdotusp.sci.b	sp,sp,20
+   c:	a0a4747b          	cv.sdotusp.sci.b	s0,s0,20
+  10:	a0aa7a7b          	cv.sdotusp.sci.b	s4,s4,20
+  14:	a0affffb          	cv.sdotusp.sci.b	t6,t6,20
+  18:	a103f37b          	cv.sdotusp.sci.b	t1,t2,-32
+  1c:	a003f37b          	cv.sdotusp.sci.b	t1,t2,0
+  20:	a2f3f37b          	cv.sdotusp.sci.b	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-b-pass.s
new file mode 100644
index 00000000000..b66e52e93ec
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-b-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.sdotusp.sci.b x0, x0, 20
+    cv.sdotusp.sci.b x1, x1, 20
+    cv.sdotusp.sci.b x2, x2, 20
+    cv.sdotusp.sci.b x8, x8, 20
+    cv.sdotusp.sci.b x20, x20, 20
+    cv.sdotusp.sci.b x31, x31, 20
+    #Immediate Values Test
+    cv.sdotusp.sci.b x6, x7, -32
+    cv.sdotusp.sci.b x6, x7, 0
+    cv.sdotusp.sci.b x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-h-fail.d
new file mode 100644
index 00000000000..36d3ab6950b
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotusp-sci-h-fail.s
+#error_output: cv-simd-sdotusp-sci-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-h-fail.l
new file mode 100644
index 00000000000..abc1063c15d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-h-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sdotusp.sci.h x32,x32,20'
+.*: Error: illegal operands `cv.sdotusp.sci.h x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-h-fail.s
new file mode 100644
index 00000000000..0ac401ef3f5
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-h-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.sdotusp.sci.h x32, x32, 20
+    cv.sdotusp.sci.h x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.sdotusp.sci.h x6, x7, -33
+    cv.sdotusp.sci.h x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-h-pass.d
new file mode 100644
index 00000000000..7b656986ff9
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-h-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sdotusp-sci-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	a0a0607b          	cv.sdotusp.sci.h	zero,zero,20
+   4:	a0a0e0fb          	cv.sdotusp.sci.h	ra,ra,20
+   8:	a0a1617b          	cv.sdotusp.sci.h	sp,sp,20
+   c:	a0a4647b          	cv.sdotusp.sci.h	s0,s0,20
+  10:	a0aa6a7b          	cv.sdotusp.sci.h	s4,s4,20
+  14:	a0afeffb          	cv.sdotusp.sci.h	t6,t6,20
+  18:	a103e37b          	cv.sdotusp.sci.h	t1,t2,-32
+  1c:	a003e37b          	cv.sdotusp.sci.h	t1,t2,0
+  20:	a2f3e37b          	cv.sdotusp.sci.h	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-h-pass.s
new file mode 100644
index 00000000000..107a05f7897
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sdotusp-sci-h-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.sdotusp.sci.h x0, x0, 20
+    cv.sdotusp.sci.h x1, x1, 20
+    cv.sdotusp.sci.h x2, x2, 20
+    cv.sdotusp.sci.h x8, x8, 20
+    cv.sdotusp.sci.h x20, x20, 20
+    cv.sdotusp.sci.h x31, x31, 20
+    #Immediate Values Test
+    cv.sdotusp.sci.h x6, x7, -32
+    cv.sdotusp.sci.h x6, x7, 0
+    cv.sdotusp.sci.h x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-shuffle-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-shuffle-b-fail.d
new file mode 100644
index 00000000000..0889cbf4826
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shuffle-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-shuffle-b-fail.s
+#error_output: cv-simd-shuffle-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-shuffle-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-shuffle-b-fail.l
new file mode 100644
index 00000000000..6ccb07a2a96
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shuffle-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.shuffle.b x32,x32,x32'
+.*: Error: illegal operands `cv.shuffle.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-shuffle-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-shuffle-b-fail.s
new file mode 100644
index 00000000000..502cb20bc19
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shuffle-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.shuffle.b x32, x32, x32
+    cv.shuffle.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-shuffle-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-shuffle-b-pass.d
new file mode 100644
index 00000000000..f751a03bef4
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shuffle-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-shuffle-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	c000107b          	cv.shuffle.b	zero,zero,zero
+   4:	c01090fb          	cv.shuffle.b	ra,ra,ra
+   8:	c021117b          	cv.shuffle.b	sp,sp,sp
+   c:	c084147b          	cv.shuffle.b	s0,s0,s0
+  10:	c14a1a7b          	cv.shuffle.b	s4,s4,s4
+  14:	c1ff9ffb          	cv.shuffle.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-shuffle-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-shuffle-b-pass.s
new file mode 100644
index 00000000000..2b94bdfbbf7
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shuffle-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.shuffle.b x0, x0, x0
+    cv.shuffle.b x1, x1, x1
+    cv.shuffle.b x2, x2, x2
+    cv.shuffle.b x8, x8, x8
+    cv.shuffle.b x20, x20, x20
+    cv.shuffle.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-shuffle-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-shuffle-h-fail.d
new file mode 100644
index 00000000000..3c1d6268a7d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shuffle-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-shuffle-h-fail.s
+#error_output: cv-simd-shuffle-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-shuffle-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-shuffle-h-fail.l
new file mode 100644
index 00000000000..28004f29675
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shuffle-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.shuffle.h x32,x32,x32'
+.*: Error: illegal operands `cv.shuffle.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-shuffle-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-shuffle-h-fail.s
new file mode 100644
index 00000000000..7526f6767c2
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shuffle-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.shuffle.h x32, x32, x32
+    cv.shuffle.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-shuffle-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-shuffle-h-pass.d
new file mode 100644
index 00000000000..5ae168db9a4
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shuffle-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-shuffle-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	c000007b          	cv.shuffle.h	zero,zero,zero
+   4:	c01080fb          	cv.shuffle.h	ra,ra,ra
+   8:	c021017b          	cv.shuffle.h	sp,sp,sp
+   c:	c084047b          	cv.shuffle.h	s0,s0,s0
+  10:	c14a0a7b          	cv.shuffle.h	s4,s4,s4
+  14:	c1ff8ffb          	cv.shuffle.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-shuffle-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-shuffle-h-pass.s
new file mode 100644
index 00000000000..898d1c918b9
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shuffle-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.shuffle.h x0, x0, x0
+    cv.shuffle.h x1, x1, x1
+    cv.shuffle.h x2, x2, x2
+    cv.shuffle.h x8, x8, x8
+    cv.shuffle.h x20, x20, x20
+    cv.shuffle.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-shuffle-sci-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-shuffle-sci-h-fail.d
new file mode 100644
index 00000000000..9657e9a994c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shuffle-sci-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-shuffle-sci-h-fail.s
+#error_output: cv-simd-shuffle-sci-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-shuffle-sci-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-shuffle-sci-h-fail.l
new file mode 100644
index 00000000000..4cb3b46692a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shuffle-sci-h-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.shuffle.sci.h x32,x32,20'
+.*: Error: illegal operands `cv.shuffle.sci.h x33,x33,20'
+.*: Error: immediate value must be 6-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 6-bit unsigned, 64 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-shuffle-sci-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-shuffle-sci-h-fail.s
new file mode 100644
index 00000000000..b28731b53ac
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shuffle-sci-h-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.shuffle.sci.h x32, x32, 20
+    cv.shuffle.sci.h x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.shuffle.sci.h x6, x7, -1
+    cv.shuffle.sci.h x6, x7, 64
diff --git a/gas/testsuite/gas/riscv/cv-simd-shuffle-sci-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-shuffle-sci-h-pass.d
new file mode 100644
index 00000000000..6620e0c6bb4
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shuffle-sci-h-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-shuffle-sci-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	c0a0607b          	cv.shuffle.sci.h	zero,zero,20
+   4:	c0a0e0fb          	cv.shuffle.sci.h	ra,ra,20
+   8:	c0a1617b          	cv.shuffle.sci.h	sp,sp,20
+   c:	c0a4647b          	cv.shuffle.sci.h	s0,s0,20
+  10:	c0aa6a7b          	cv.shuffle.sci.h	s4,s4,20
+  14:	c0afeffb          	cv.shuffle.sci.h	t6,t6,20
+  18:	c003e37b          	cv.shuffle.sci.h	t1,t2,0
+  1c:	c3f3e37b          	cv.shuffle.sci.h	t1,t2,63
diff --git a/gas/testsuite/gas/riscv/cv-simd-shuffle-sci-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-shuffle-sci-h-pass.s
new file mode 100644
index 00000000000..c71e8061584
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shuffle-sci-h-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.shuffle.sci.h x0, x0, 20
+    cv.shuffle.sci.h x1, x1, 20
+    cv.shuffle.sci.h x2, x2, 20
+    cv.shuffle.sci.h x8, x8, 20
+    cv.shuffle.sci.h x20, x20, 20
+    cv.shuffle.sci.h x31, x31, 20
+    #Immediate Values Test
+    cv.shuffle.sci.h x6, x7, 0
+    cv.shuffle.sci.h x6, x7, 63
diff --git a/gas/testsuite/gas/riscv/cv-simd-shuffle2-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-shuffle2-b-fail.d
new file mode 100644
index 00000000000..f714cf9ab2b
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shuffle2-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-shuffle2-b-fail.s
+#error_output: cv-simd-shuffle2-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-shuffle2-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-shuffle2-b-fail.l
new file mode 100644
index 00000000000..94e47f7f8c7
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shuffle2-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.shuffle2.b x32,x32,x32'
+.*: Error: illegal operands `cv.shuffle2.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-shuffle2-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-shuffle2-b-fail.s
new file mode 100644
index 00000000000..5adf9f32e66
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shuffle2-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.shuffle2.b x32, x32, x32
+    cv.shuffle2.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-shuffle2-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-shuffle2-b-pass.d
new file mode 100644
index 00000000000..7116c7913a4
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shuffle2-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-shuffle2-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	e000107b          	cv.shuffle2.b	zero,zero,zero
+   4:	e01090fb          	cv.shuffle2.b	ra,ra,ra
+   8:	e021117b          	cv.shuffle2.b	sp,sp,sp
+   c:	e084147b          	cv.shuffle2.b	s0,s0,s0
+  10:	e14a1a7b          	cv.shuffle2.b	s4,s4,s4
+  14:	e1ff9ffb          	cv.shuffle2.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-shuffle2-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-shuffle2-b-pass.s
new file mode 100644
index 00000000000..3db4896c27f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shuffle2-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.shuffle2.b x0, x0, x0
+    cv.shuffle2.b x1, x1, x1
+    cv.shuffle2.b x2, x2, x2
+    cv.shuffle2.b x8, x8, x8
+    cv.shuffle2.b x20, x20, x20
+    cv.shuffle2.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-shuffle2-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-shuffle2-h-fail.d
new file mode 100644
index 00000000000..e1fba2e4d3d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shuffle2-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-shuffle2-h-fail.s
+#error_output: cv-simd-shuffle2-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-shuffle2-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-shuffle2-h-fail.l
new file mode 100644
index 00000000000..31b69598bbf
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shuffle2-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.shuffle2.h x32,x32,x32'
+.*: Error: illegal operands `cv.shuffle2.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-shuffle2-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-shuffle2-h-fail.s
new file mode 100644
index 00000000000..f233fc0ad16
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shuffle2-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.shuffle2.h x32, x32, x32
+    cv.shuffle2.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-shuffle2-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-shuffle2-h-pass.d
new file mode 100644
index 00000000000..d4af2fd10b4
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shuffle2-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-shuffle2-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	e000007b          	cv.shuffle2.h	zero,zero,zero
+   4:	e01080fb          	cv.shuffle2.h	ra,ra,ra
+   8:	e021017b          	cv.shuffle2.h	sp,sp,sp
+   c:	e084047b          	cv.shuffle2.h	s0,s0,s0
+  10:	e14a0a7b          	cv.shuffle2.h	s4,s4,s4
+  14:	e1ff8ffb          	cv.shuffle2.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-shuffle2-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-shuffle2-h-pass.s
new file mode 100644
index 00000000000..794fb83ebc6
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shuffle2-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.shuffle2.h x0, x0, x0
+    cv.shuffle2.h x1, x1, x1
+    cv.shuffle2.h x2, x2, x2
+    cv.shuffle2.h x8, x8, x8
+    cv.shuffle2.h x20, x20, x20
+    cv.shuffle2.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-shufflei0-sci-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-shufflei0-sci-b-fail.d
new file mode 100644
index 00000000000..40cc0724237
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shufflei0-sci-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-shufflei0-sci-b-fail.s
+#error_output: cv-simd-shufflei0-sci-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-shufflei0-sci-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-shufflei0-sci-b-fail.l
new file mode 100644
index 00000000000..64a0bbaee56
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shufflei0-sci-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.shufflei0.sci.b x32,x32,20'
+.*: Error: illegal operands `cv.shufflei0.sci.b x33,x33,20'
+.*: Error: immediate value must be 6-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 6-bit unsigned, 64 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-shufflei0-sci-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-shufflei0-sci-b-fail.s
new file mode 100644
index 00000000000..78aa8ea7e7e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shufflei0-sci-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.shufflei0.sci.b x32, x32, 20
+    cv.shufflei0.sci.b x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.shufflei0.sci.b x6, x7, -1
+    cv.shufflei0.sci.b x6, x7, 64
diff --git a/gas/testsuite/gas/riscv/cv-simd-shufflei0-sci-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-shufflei0-sci-b-pass.d
new file mode 100644
index 00000000000..9bf3b044749
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shufflei0-sci-b-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-shufflei0-sci-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	c0a0707b          	cv.shufflei0.sci.b	zero,zero,20
+   4:	c0a0f0fb          	cv.shufflei0.sci.b	ra,ra,20
+   8:	c0a1717b          	cv.shufflei0.sci.b	sp,sp,20
+   c:	c0a4747b          	cv.shufflei0.sci.b	s0,s0,20
+  10:	c0aa7a7b          	cv.shufflei0.sci.b	s4,s4,20
+  14:	c0affffb          	cv.shufflei0.sci.b	t6,t6,20
+  18:	c003f37b          	cv.shufflei0.sci.b	t1,t2,0
+  1c:	c3f3f37b          	cv.shufflei0.sci.b	t1,t2,63
diff --git a/gas/testsuite/gas/riscv/cv-simd-shufflei0-sci-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-shufflei0-sci-b-pass.s
new file mode 100644
index 00000000000..d40c845d766
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shufflei0-sci-b-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.shufflei0.sci.b x0, x0, 20
+    cv.shufflei0.sci.b x1, x1, 20
+    cv.shufflei0.sci.b x2, x2, 20
+    cv.shufflei0.sci.b x8, x8, 20
+    cv.shufflei0.sci.b x20, x20, 20
+    cv.shufflei0.sci.b x31, x31, 20
+    #Immediate Values Test
+    cv.shufflei0.sci.b x6, x7, 0
+    cv.shufflei0.sci.b x6, x7, 63
diff --git a/gas/testsuite/gas/riscv/cv-simd-shufflei1-sci-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-shufflei1-sci-b-fail.d
new file mode 100644
index 00000000000..4dba182f72c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shufflei1-sci-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-shufflei1-sci-b-fail.s
+#error_output: cv-simd-shufflei1-sci-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-shufflei1-sci-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-shufflei1-sci-b-fail.l
new file mode 100644
index 00000000000..a77e4235c78
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shufflei1-sci-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.shufflei1.sci.b x32,x32,20'
+.*: Error: illegal operands `cv.shufflei1.sci.b x33,x33,20'
+.*: Error: immediate value must be 6-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 6-bit unsigned, 64 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-shufflei1-sci-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-shufflei1-sci-b-fail.s
new file mode 100644
index 00000000000..558484f4318
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shufflei1-sci-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.shufflei1.sci.b x32, x32, 20
+    cv.shufflei1.sci.b x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.shufflei1.sci.b x6, x7, -1
+    cv.shufflei1.sci.b x6, x7, 64
diff --git a/gas/testsuite/gas/riscv/cv-simd-shufflei1-sci-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-shufflei1-sci-b-pass.d
new file mode 100644
index 00000000000..bbc75744400
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shufflei1-sci-b-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-shufflei1-sci-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	c8a0707b          	cv.shufflei1.sci.b	zero,zero,20
+   4:	c8a0f0fb          	cv.shufflei1.sci.b	ra,ra,20
+   8:	c8a1717b          	cv.shufflei1.sci.b	sp,sp,20
+   c:	c8a4747b          	cv.shufflei1.sci.b	s0,s0,20
+  10:	c8aa7a7b          	cv.shufflei1.sci.b	s4,s4,20
+  14:	c8affffb          	cv.shufflei1.sci.b	t6,t6,20
+  18:	c803f37b          	cv.shufflei1.sci.b	t1,t2,0
+  1c:	cbf3f37b          	cv.shufflei1.sci.b	t1,t2,63
diff --git a/gas/testsuite/gas/riscv/cv-simd-shufflei1-sci-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-shufflei1-sci-b-pass.s
new file mode 100644
index 00000000000..379693b67c6
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shufflei1-sci-b-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.shufflei1.sci.b x0, x0, 20
+    cv.shufflei1.sci.b x1, x1, 20
+    cv.shufflei1.sci.b x2, x2, 20
+    cv.shufflei1.sci.b x8, x8, 20
+    cv.shufflei1.sci.b x20, x20, 20
+    cv.shufflei1.sci.b x31, x31, 20
+    #Immediate Values Test
+    cv.shufflei1.sci.b x6, x7, 0
+    cv.shufflei1.sci.b x6, x7, 63
diff --git a/gas/testsuite/gas/riscv/cv-simd-shufflei2-sci-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-shufflei2-sci-b-fail.d
new file mode 100644
index 00000000000..1113d60d073
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shufflei2-sci-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-shufflei2-sci-b-fail.s
+#error_output: cv-simd-shufflei2-sci-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-shufflei2-sci-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-shufflei2-sci-b-fail.l
new file mode 100644
index 00000000000..c136de86700
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shufflei2-sci-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.shufflei2.sci.b x32,x32,20'
+.*: Error: illegal operands `cv.shufflei2.sci.b x33,x33,20'
+.*: Error: immediate value must be 6-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 6-bit unsigned, 64 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-shufflei2-sci-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-shufflei2-sci-b-fail.s
new file mode 100644
index 00000000000..565b0c599d5
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shufflei2-sci-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.shufflei2.sci.b x32, x32, 20
+    cv.shufflei2.sci.b x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.shufflei2.sci.b x6, x7, -1
+    cv.shufflei2.sci.b x6, x7, 64
diff --git a/gas/testsuite/gas/riscv/cv-simd-shufflei2-sci-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-shufflei2-sci-b-pass.d
new file mode 100644
index 00000000000..0ec56cfa0ca
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shufflei2-sci-b-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-shufflei2-sci-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	d0a0707b          	cv.shufflei2.sci.b	zero,zero,20
+   4:	d0a0f0fb          	cv.shufflei2.sci.b	ra,ra,20
+   8:	d0a1717b          	cv.shufflei2.sci.b	sp,sp,20
+   c:	d0a4747b          	cv.shufflei2.sci.b	s0,s0,20
+  10:	d0aa7a7b          	cv.shufflei2.sci.b	s4,s4,20
+  14:	d0affffb          	cv.shufflei2.sci.b	t6,t6,20
+  18:	d003f37b          	cv.shufflei2.sci.b	t1,t2,0
+  1c:	d3f3f37b          	cv.shufflei2.sci.b	t1,t2,63
diff --git a/gas/testsuite/gas/riscv/cv-simd-shufflei2-sci-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-shufflei2-sci-b-pass.s
new file mode 100644
index 00000000000..c0baa2609d8
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shufflei2-sci-b-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.shufflei2.sci.b x0, x0, 20
+    cv.shufflei2.sci.b x1, x1, 20
+    cv.shufflei2.sci.b x2, x2, 20
+    cv.shufflei2.sci.b x8, x8, 20
+    cv.shufflei2.sci.b x20, x20, 20
+    cv.shufflei2.sci.b x31, x31, 20
+    #Immediate Values Test
+    cv.shufflei2.sci.b x6, x7, 0
+    cv.shufflei2.sci.b x6, x7, 63
diff --git a/gas/testsuite/gas/riscv/cv-simd-shufflei3-sci-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-shufflei3-sci-b-fail.d
new file mode 100644
index 00000000000..eb783f4d831
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shufflei3-sci-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-shufflei3-sci-b-fail.s
+#error_output: cv-simd-shufflei3-sci-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-shufflei3-sci-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-shufflei3-sci-b-fail.l
new file mode 100644
index 00000000000..41cadc70ed6
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shufflei3-sci-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.shufflei3.sci.b x32,x32,20'
+.*: Error: illegal operands `cv.shufflei3.sci.b x33,x33,20'
+.*: Error: immediate value must be 6-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 6-bit unsigned, 64 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-shufflei3-sci-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-shufflei3-sci-b-fail.s
new file mode 100644
index 00000000000..43bfefb1cf8
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shufflei3-sci-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.shufflei3.sci.b x32, x32, 20
+    cv.shufflei3.sci.b x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.shufflei3.sci.b x6, x7, -1
+    cv.shufflei3.sci.b x6, x7, 64
diff --git a/gas/testsuite/gas/riscv/cv-simd-shufflei3-sci-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-shufflei3-sci-b-pass.d
new file mode 100644
index 00000000000..ef9d3018f34
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shufflei3-sci-b-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-shufflei3-sci-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	d8a0707b          	cv.shufflei3.sci.b	zero,zero,20
+   4:	d8a0f0fb          	cv.shufflei3.sci.b	ra,ra,20
+   8:	d8a1717b          	cv.shufflei3.sci.b	sp,sp,20
+   c:	d8a4747b          	cv.shufflei3.sci.b	s0,s0,20
+  10:	d8aa7a7b          	cv.shufflei3.sci.b	s4,s4,20
+  14:	d8affffb          	cv.shufflei3.sci.b	t6,t6,20
+  18:	d803f37b          	cv.shufflei3.sci.b	t1,t2,0
+  1c:	dbf3f37b          	cv.shufflei3.sci.b	t1,t2,63
diff --git a/gas/testsuite/gas/riscv/cv-simd-shufflei3-sci-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-shufflei3-sci-b-pass.s
new file mode 100644
index 00000000000..b320d1a2c52
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-shufflei3-sci-b-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.shufflei3.sci.b x0, x0, 20
+    cv.shufflei3.sci.b x1, x1, 20
+    cv.shufflei3.sci.b x2, x2, 20
+    cv.shufflei3.sci.b x8, x8, 20
+    cv.shufflei3.sci.b x20, x20, 20
+    cv.shufflei3.sci.b x31, x31, 20
+    #Immediate Values Test
+    cv.shufflei3.sci.b x6, x7, 0
+    cv.shufflei3.sci.b x6, x7, 63
diff --git a/gas/testsuite/gas/riscv/cv-simd-sll-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-sll-b-fail.d
new file mode 100644
index 00000000000..77dec2bbf74
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sll-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sll-b-fail.s
+#error_output: cv-simd-sll-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sll-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-sll-b-fail.l
new file mode 100644
index 00000000000..4bf8b2b1f97
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sll-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sll.b x32,x32,x32'
+.*: Error: illegal operands `cv.sll.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-sll-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-sll-b-fail.s
new file mode 100644
index 00000000000..3af9d4fb436
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sll-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.sll.b x32, x32, x32
+    cv.sll.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-sll-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-sll-b-pass.d
new file mode 100644
index 00000000000..0896652ce8d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sll-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sll-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	5000107b          	cv.sll.b	zero,zero,zero
+   4:	501090fb          	cv.sll.b	ra,ra,ra
+   8:	5021117b          	cv.sll.b	sp,sp,sp
+   c:	5084147b          	cv.sll.b	s0,s0,s0
+  10:	514a1a7b          	cv.sll.b	s4,s4,s4
+  14:	51ff9ffb          	cv.sll.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-sll-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-sll-b-pass.s
new file mode 100644
index 00000000000..2f39d96332a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sll-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.sll.b x0, x0, x0
+    cv.sll.b x1, x1, x1
+    cv.sll.b x2, x2, x2
+    cv.sll.b x8, x8, x8
+    cv.sll.b x20, x20, x20
+    cv.sll.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sll-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-sll-h-fail.d
new file mode 100644
index 00000000000..79f1bfdf4e6
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sll-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sll-h-fail.s
+#error_output: cv-simd-sll-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sll-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-sll-h-fail.l
new file mode 100644
index 00000000000..3ea79744e4f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sll-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sll.h x32,x32,x32'
+.*: Error: illegal operands `cv.sll.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-sll-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-sll-h-fail.s
new file mode 100644
index 00000000000..b3994452649
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sll-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.sll.h x32, x32, x32
+    cv.sll.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-sll-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-sll-h-pass.d
new file mode 100644
index 00000000000..c9f21b61afe
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sll-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sll-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	5000007b          	cv.sll.h	zero,zero,zero
+   4:	501080fb          	cv.sll.h	ra,ra,ra
+   8:	5021017b          	cv.sll.h	sp,sp,sp
+   c:	5084047b          	cv.sll.h	s0,s0,s0
+  10:	514a0a7b          	cv.sll.h	s4,s4,s4
+  14:	51ff8ffb          	cv.sll.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-sll-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-sll-h-pass.s
new file mode 100644
index 00000000000..d352da86ef5
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sll-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.sll.h x0, x0, x0
+    cv.sll.h x1, x1, x1
+    cv.sll.h x2, x2, x2
+    cv.sll.h x8, x8, x8
+    cv.sll.h x20, x20, x20
+    cv.sll.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sll-sc-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-sll-sc-b-fail.d
new file mode 100644
index 00000000000..f03efb96d60
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sll-sc-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sll-sc-b-fail.s
+#error_output: cv-simd-sll-sc-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sll-sc-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-sll-sc-b-fail.l
new file mode 100644
index 00000000000..ce3d6df659a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sll-sc-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sll.sc.b x32,x32,x32'
+.*: Error: illegal operands `cv.sll.sc.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-sll-sc-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-sll-sc-b-fail.s
new file mode 100644
index 00000000000..d67c1f8a708
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sll-sc-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.sll.sc.b x32, x32, x32
+    cv.sll.sc.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-sll-sc-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-sll-sc-b-pass.d
new file mode 100644
index 00000000000..0ac1111df99
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sll-sc-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sll-sc-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	5000507b          	cv.sll.sc.b	zero,zero,zero
+   4:	5010d0fb          	cv.sll.sc.b	ra,ra,ra
+   8:	5021517b          	cv.sll.sc.b	sp,sp,sp
+   c:	5084547b          	cv.sll.sc.b	s0,s0,s0
+  10:	514a5a7b          	cv.sll.sc.b	s4,s4,s4
+  14:	51ffdffb          	cv.sll.sc.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-sll-sc-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-sll-sc-b-pass.s
new file mode 100644
index 00000000000..0555a81bb22
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sll-sc-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.sll.sc.b x0, x0, x0
+    cv.sll.sc.b x1, x1, x1
+    cv.sll.sc.b x2, x2, x2
+    cv.sll.sc.b x8, x8, x8
+    cv.sll.sc.b x20, x20, x20
+    cv.sll.sc.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sll-sc-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-sll-sc-h-fail.d
new file mode 100644
index 00000000000..73447182489
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sll-sc-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sll-sc-h-fail.s
+#error_output: cv-simd-sll-sc-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sll-sc-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-sll-sc-h-fail.l
new file mode 100644
index 00000000000..320fa74ec56
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sll-sc-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sll.sc.h x32,x32,x32'
+.*: Error: illegal operands `cv.sll.sc.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-sll-sc-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-sll-sc-h-fail.s
new file mode 100644
index 00000000000..3b85647483f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sll-sc-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.sll.sc.h x32, x32, x32
+    cv.sll.sc.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-sll-sc-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-sll-sc-h-pass.d
new file mode 100644
index 00000000000..37d4d74cdeb
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sll-sc-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sll-sc-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	5000407b          	cv.sll.sc.h	zero,zero,zero
+   4:	5010c0fb          	cv.sll.sc.h	ra,ra,ra
+   8:	5021417b          	cv.sll.sc.h	sp,sp,sp
+   c:	5084447b          	cv.sll.sc.h	s0,s0,s0
+  10:	514a4a7b          	cv.sll.sc.h	s4,s4,s4
+  14:	51ffcffb          	cv.sll.sc.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-sll-sc-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-sll-sc-h-pass.s
new file mode 100644
index 00000000000..79f5894ccf4
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sll-sc-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.sll.sc.h x0, x0, x0
+    cv.sll.sc.h x1, x1, x1
+    cv.sll.sc.h x2, x2, x2
+    cv.sll.sc.h x8, x8, x8
+    cv.sll.sc.h x20, x20, x20
+    cv.sll.sc.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sll-sci-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-sll-sci-b-fail.d
new file mode 100644
index 00000000000..fe54c3062b0
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sll-sci-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sll-sci-b-fail.s
+#error_output: cv-simd-sll-sci-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sll-sci-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-sll-sci-b-fail.l
new file mode 100644
index 00000000000..b262ddf0b81
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sll-sci-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sll.sci.b x32,x32,4'
+.*: Error: illegal operands `cv.sll.sci.b x33,x33,4'
+.*: Error: immediate value must be 3-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 3-bit unsigned, 8 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-sll-sci-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-sll-sci-b-fail.s
new file mode 100644
index 00000000000..5072be7045c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sll-sci-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.sll.sci.b x32, x32, 4
+    cv.sll.sci.b x33, x33, 4
+    #Boundary Immediate Values Test
+    cv.sll.sci.b x6, x7, -1
+    cv.sll.sci.b x6, x7, 8
diff --git a/gas/testsuite/gas/riscv/cv-simd-sll-sci-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-sll-sci-b-pass.d
new file mode 100644
index 00000000000..5a7a250d26f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sll-sci-b-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sll-sci-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	5020707b          	cv.sll.sci.b	zero,zero,4
+   4:	5020f0fb          	cv.sll.sci.b	ra,ra,4
+   8:	5021717b          	cv.sll.sci.b	sp,sp,4
+   c:	5024747b          	cv.sll.sci.b	s0,s0,4
+  10:	502a7a7b          	cv.sll.sci.b	s4,s4,4
+  14:	502ffffb          	cv.sll.sci.b	t6,t6,4
+  18:	5003f37b          	cv.sll.sci.b	t1,t2,0
+  1c:	5233f37b          	cv.sll.sci.b	t1,t2,7
diff --git a/gas/testsuite/gas/riscv/cv-simd-sll-sci-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-sll-sci-b-pass.s
new file mode 100644
index 00000000000..2a44a0f9ab5
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sll-sci-b-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.sll.sci.b x0, x0, 4
+    cv.sll.sci.b x1, x1, 4
+    cv.sll.sci.b x2, x2, 4
+    cv.sll.sci.b x8, x8, 4
+    cv.sll.sci.b x20, x20, 4
+    cv.sll.sci.b x31, x31, 4
+    #Immediate Values Test
+    cv.sll.sci.b x6, x7, 0
+    cv.sll.sci.b x6, x7, 7
diff --git a/gas/testsuite/gas/riscv/cv-simd-sll-sci-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-sll-sci-h-fail.d
new file mode 100644
index 00000000000..0bc189f2c89
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sll-sci-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sll-sci-h-fail.s
+#error_output: cv-simd-sll-sci-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sll-sci-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-sll-sci-h-fail.l
new file mode 100644
index 00000000000..98eab6ec8d3
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sll-sci-h-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sll.sci.h x32,x32,12'
+.*: Error: illegal operands `cv.sll.sci.h x33,x33,12'
+.*: Error: immediate value must be 4-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 4-bit unsigned, 16 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-sll-sci-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-sll-sci-h-fail.s
new file mode 100644
index 00000000000..a0e2efb5c20
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sll-sci-h-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.sll.sci.h x32, x32, 12
+    cv.sll.sci.h x33, x33, 12
+    #Boundary Immediate Values Test
+    cv.sll.sci.h x6, x7, -1
+    cv.sll.sci.h x6, x7, 16
diff --git a/gas/testsuite/gas/riscv/cv-simd-sll-sci-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-sll-sci-h-pass.d
new file mode 100644
index 00000000000..ca477571cca
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sll-sci-h-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sll-sci-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	5060607b          	cv.sll.sci.h	zero,zero,12
+   4:	5060e0fb          	cv.sll.sci.h	ra,ra,12
+   8:	5061617b          	cv.sll.sci.h	sp,sp,12
+   c:	5064647b          	cv.sll.sci.h	s0,s0,12
+  10:	506a6a7b          	cv.sll.sci.h	s4,s4,12
+  14:	506feffb          	cv.sll.sci.h	t6,t6,12
+  18:	5003e37b          	cv.sll.sci.h	t1,t2,0
+  1c:	5273e37b          	cv.sll.sci.h	t1,t2,15
diff --git a/gas/testsuite/gas/riscv/cv-simd-sll-sci-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-sll-sci-h-pass.s
new file mode 100644
index 00000000000..975ec3e41ac
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sll-sci-h-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.sll.sci.h x0, x0, 12
+    cv.sll.sci.h x1, x1, 12
+    cv.sll.sci.h x2, x2, 12
+    cv.sll.sci.h x8, x8, 12
+    cv.sll.sci.h x20, x20, 12
+    cv.sll.sci.h x31, x31, 12
+    #Immediate Values Test
+    cv.sll.sci.h x6, x7, 0
+    cv.sll.sci.h x6, x7, 15
diff --git a/gas/testsuite/gas/riscv/cv-simd-sra-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-sra-b-fail.d
new file mode 100644
index 00000000000..43ea15bf717
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sra-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sra-b-fail.s
+#error_output: cv-simd-sra-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sra-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-sra-b-fail.l
new file mode 100644
index 00000000000..e6d5a094539
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sra-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sra.b x32,x32,x32'
+.*: Error: illegal operands `cv.sra.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-sra-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-sra-b-fail.s
new file mode 100644
index 00000000000..13420a236d4
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sra-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.sra.b x32, x32, x32
+    cv.sra.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-sra-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-sra-b-pass.d
new file mode 100644
index 00000000000..76522b8e892
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sra-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sra-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	4800107b          	cv.sra.b	zero,zero,zero
+   4:	481090fb          	cv.sra.b	ra,ra,ra
+   8:	4821117b          	cv.sra.b	sp,sp,sp
+   c:	4884147b          	cv.sra.b	s0,s0,s0
+  10:	494a1a7b          	cv.sra.b	s4,s4,s4
+  14:	49ff9ffb          	cv.sra.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-sra-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-sra-b-pass.s
new file mode 100644
index 00000000000..854a6411b32
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sra-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.sra.b x0, x0, x0
+    cv.sra.b x1, x1, x1
+    cv.sra.b x2, x2, x2
+    cv.sra.b x8, x8, x8
+    cv.sra.b x20, x20, x20
+    cv.sra.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sra-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-sra-h-fail.d
new file mode 100644
index 00000000000..ddda6efdcdd
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sra-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sra-h-fail.s
+#error_output: cv-simd-sra-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sra-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-sra-h-fail.l
new file mode 100644
index 00000000000..ddf7b46acb0
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sra-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sra.h x32,x32,x32'
+.*: Error: illegal operands `cv.sra.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-sra-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-sra-h-fail.s
new file mode 100644
index 00000000000..d08278de466
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sra-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.sra.h x32, x32, x32
+    cv.sra.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-sra-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-sra-h-pass.d
new file mode 100644
index 00000000000..b7eab0a980c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sra-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sra-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	4800007b          	cv.sra.h	zero,zero,zero
+   4:	481080fb          	cv.sra.h	ra,ra,ra
+   8:	4821017b          	cv.sra.h	sp,sp,sp
+   c:	4884047b          	cv.sra.h	s0,s0,s0
+  10:	494a0a7b          	cv.sra.h	s4,s4,s4
+  14:	49ff8ffb          	cv.sra.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-sra-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-sra-h-pass.s
new file mode 100644
index 00000000000..f71c72977b4
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sra-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.sra.h x0, x0, x0
+    cv.sra.h x1, x1, x1
+    cv.sra.h x2, x2, x2
+    cv.sra.h x8, x8, x8
+    cv.sra.h x20, x20, x20
+    cv.sra.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sra-sc-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-sra-sc-b-fail.d
new file mode 100644
index 00000000000..1a26f3fac35
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sra-sc-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sra-sc-b-fail.s
+#error_output: cv-simd-sra-sc-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sra-sc-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-sra-sc-b-fail.l
new file mode 100644
index 00000000000..72df02d3a2d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sra-sc-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sra.sc.b x32,x32,x32'
+.*: Error: illegal operands `cv.sra.sc.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-sra-sc-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-sra-sc-b-fail.s
new file mode 100644
index 00000000000..dac3ee65159
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sra-sc-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.sra.sc.b x32, x32, x32
+    cv.sra.sc.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-sra-sc-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-sra-sc-b-pass.d
new file mode 100644
index 00000000000..23bd8eea69f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sra-sc-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sra-sc-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	4800507b          	cv.sra.sc.b	zero,zero,zero
+   4:	4810d0fb          	cv.sra.sc.b	ra,ra,ra
+   8:	4821517b          	cv.sra.sc.b	sp,sp,sp
+   c:	4884547b          	cv.sra.sc.b	s0,s0,s0
+  10:	494a5a7b          	cv.sra.sc.b	s4,s4,s4
+  14:	49ffdffb          	cv.sra.sc.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-sra-sc-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-sra-sc-b-pass.s
new file mode 100644
index 00000000000..c2e68edf304
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sra-sc-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.sra.sc.b x0, x0, x0
+    cv.sra.sc.b x1, x1, x1
+    cv.sra.sc.b x2, x2, x2
+    cv.sra.sc.b x8, x8, x8
+    cv.sra.sc.b x20, x20, x20
+    cv.sra.sc.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sra-sc-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-sra-sc-h-fail.d
new file mode 100644
index 00000000000..7583498c1f4
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sra-sc-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sra-sc-h-fail.s
+#error_output: cv-simd-sra-sc-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sra-sc-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-sra-sc-h-fail.l
new file mode 100644
index 00000000000..68eef579272
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sra-sc-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sra.sc.h x32,x32,x32'
+.*: Error: illegal operands `cv.sra.sc.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-sra-sc-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-sra-sc-h-fail.s
new file mode 100644
index 00000000000..5a9221ba04d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sra-sc-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.sra.sc.h x32, x32, x32
+    cv.sra.sc.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-sra-sc-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-sra-sc-h-pass.d
new file mode 100644
index 00000000000..5617de5e462
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sra-sc-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sra-sc-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	4800407b          	cv.sra.sc.h	zero,zero,zero
+   4:	4810c0fb          	cv.sra.sc.h	ra,ra,ra
+   8:	4821417b          	cv.sra.sc.h	sp,sp,sp
+   c:	4884447b          	cv.sra.sc.h	s0,s0,s0
+  10:	494a4a7b          	cv.sra.sc.h	s4,s4,s4
+  14:	49ffcffb          	cv.sra.sc.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-sra-sc-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-sra-sc-h-pass.s
new file mode 100644
index 00000000000..2a370fd307a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sra-sc-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.sra.sc.h x0, x0, x0
+    cv.sra.sc.h x1, x1, x1
+    cv.sra.sc.h x2, x2, x2
+    cv.sra.sc.h x8, x8, x8
+    cv.sra.sc.h x20, x20, x20
+    cv.sra.sc.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sra-sci-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-sra-sci-b-fail.d
new file mode 100644
index 00000000000..23a5e75ca59
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sra-sci-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sra-sci-b-fail.s
+#error_output: cv-simd-sra-sci-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sra-sci-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-sra-sci-b-fail.l
new file mode 100644
index 00000000000..f49e9e1867d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sra-sci-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sra.sci.b x32,x32,4'
+.*: Error: illegal operands `cv.sra.sci.b x33,x33,4'
+.*: Error: immediate value must be 3-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 3-bit unsigned, 8 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-sra-sci-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-sra-sci-b-fail.s
new file mode 100644
index 00000000000..4285e3778e3
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sra-sci-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.sra.sci.b x32, x32, 4
+    cv.sra.sci.b x33, x33, 4
+    #Boundary Immediate Values Test
+    cv.sra.sci.b x6, x7, -1
+    cv.sra.sci.b x6, x7, 8
diff --git a/gas/testsuite/gas/riscv/cv-simd-sra-sci-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-sra-sci-b-pass.d
new file mode 100644
index 00000000000..e5ddc8f530d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sra-sci-b-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sra-sci-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	4820707b          	cv.sra.sci.b	zero,zero,4
+   4:	4820f0fb          	cv.sra.sci.b	ra,ra,4
+   8:	4821717b          	cv.sra.sci.b	sp,sp,4
+   c:	4824747b          	cv.sra.sci.b	s0,s0,4
+  10:	482a7a7b          	cv.sra.sci.b	s4,s4,4
+  14:	482ffffb          	cv.sra.sci.b	t6,t6,4
+  18:	4803f37b          	cv.sra.sci.b	t1,t2,0
+  1c:	4a33f37b          	cv.sra.sci.b	t1,t2,7
diff --git a/gas/testsuite/gas/riscv/cv-simd-sra-sci-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-sra-sci-b-pass.s
new file mode 100644
index 00000000000..cd34936b289
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sra-sci-b-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.sra.sci.b x0, x0, 4
+    cv.sra.sci.b x1, x1, 4
+    cv.sra.sci.b x2, x2, 4
+    cv.sra.sci.b x8, x8, 4
+    cv.sra.sci.b x20, x20, 4
+    cv.sra.sci.b x31, x31, 4
+    #Immediate Values Test
+    cv.sra.sci.b x6, x7, 0
+    cv.sra.sci.b x6, x7, 7
diff --git a/gas/testsuite/gas/riscv/cv-simd-sra-sci-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-sra-sci-h-fail.d
new file mode 100644
index 00000000000..de26bbf183c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sra-sci-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sra-sci-h-fail.s
+#error_output: cv-simd-sra-sci-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sra-sci-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-sra-sci-h-fail.l
new file mode 100644
index 00000000000..cab4c6f3369
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sra-sci-h-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sra.sci.h x32,x32,12'
+.*: Error: illegal operands `cv.sra.sci.h x33,x33,12'
+.*: Error: immediate value must be 4-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 4-bit unsigned, 16 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-sra-sci-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-sra-sci-h-fail.s
new file mode 100644
index 00000000000..66957489d2f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sra-sci-h-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.sra.sci.h x32, x32, 12
+    cv.sra.sci.h x33, x33, 12
+    #Boundary Immediate Values Test
+    cv.sra.sci.h x6, x7, -1
+    cv.sra.sci.h x6, x7, 16
diff --git a/gas/testsuite/gas/riscv/cv-simd-sra-sci-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-sra-sci-h-pass.d
new file mode 100644
index 00000000000..f182758d768
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sra-sci-h-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sra-sci-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	4860607b          	cv.sra.sci.h	zero,zero,12
+   4:	4860e0fb          	cv.sra.sci.h	ra,ra,12
+   8:	4861617b          	cv.sra.sci.h	sp,sp,12
+   c:	4864647b          	cv.sra.sci.h	s0,s0,12
+  10:	486a6a7b          	cv.sra.sci.h	s4,s4,12
+  14:	486feffb          	cv.sra.sci.h	t6,t6,12
+  18:	4803e37b          	cv.sra.sci.h	t1,t2,0
+  1c:	4a73e37b          	cv.sra.sci.h	t1,t2,15
diff --git a/gas/testsuite/gas/riscv/cv-simd-sra-sci-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-sra-sci-h-pass.s
new file mode 100644
index 00000000000..c59396b2760
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sra-sci-h-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.sra.sci.h x0, x0, 12
+    cv.sra.sci.h x1, x1, 12
+    cv.sra.sci.h x2, x2, 12
+    cv.sra.sci.h x8, x8, 12
+    cv.sra.sci.h x20, x20, 12
+    cv.sra.sci.h x31, x31, 12
+    #Immediate Values Test
+    cv.sra.sci.h x6, x7, 0
+    cv.sra.sci.h x6, x7, 15
diff --git a/gas/testsuite/gas/riscv/cv-simd-srl-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-srl-b-fail.d
new file mode 100644
index 00000000000..a28f67f7d30
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-srl-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-srl-b-fail.s
+#error_output: cv-simd-srl-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-srl-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-srl-b-fail.l
new file mode 100644
index 00000000000..2e8ea987dac
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-srl-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.srl.b x32,x32,x32'
+.*: Error: illegal operands `cv.srl.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-srl-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-srl-b-fail.s
new file mode 100644
index 00000000000..ea84d2ad24c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-srl-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.srl.b x32, x32, x32
+    cv.srl.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-srl-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-srl-b-pass.d
new file mode 100644
index 00000000000..e40562f3f66
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-srl-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-srl-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	4000107b          	cv.srl.b	zero,zero,zero
+   4:	401090fb          	cv.srl.b	ra,ra,ra
+   8:	4021117b          	cv.srl.b	sp,sp,sp
+   c:	4084147b          	cv.srl.b	s0,s0,s0
+  10:	414a1a7b          	cv.srl.b	s4,s4,s4
+  14:	41ff9ffb          	cv.srl.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-srl-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-srl-b-pass.s
new file mode 100644
index 00000000000..a0dcde82d0d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-srl-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.srl.b x0, x0, x0
+    cv.srl.b x1, x1, x1
+    cv.srl.b x2, x2, x2
+    cv.srl.b x8, x8, x8
+    cv.srl.b x20, x20, x20
+    cv.srl.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-srl-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-srl-h-fail.d
new file mode 100644
index 00000000000..932568b5f3e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-srl-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-srl-h-fail.s
+#error_output: cv-simd-srl-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-srl-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-srl-h-fail.l
new file mode 100644
index 00000000000..427b72b5219
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-srl-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.srl.h x32,x32,x32'
+.*: Error: illegal operands `cv.srl.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-srl-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-srl-h-fail.s
new file mode 100644
index 00000000000..8ed38d0e5ef
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-srl-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.srl.h x32, x32, x32
+    cv.srl.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-srl-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-srl-h-pass.d
new file mode 100644
index 00000000000..24dde446e7c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-srl-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-srl-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	4000007b          	cv.srl.h	zero,zero,zero
+   4:	401080fb          	cv.srl.h	ra,ra,ra
+   8:	4021017b          	cv.srl.h	sp,sp,sp
+   c:	4084047b          	cv.srl.h	s0,s0,s0
+  10:	414a0a7b          	cv.srl.h	s4,s4,s4
+  14:	41ff8ffb          	cv.srl.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-srl-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-srl-h-pass.s
new file mode 100644
index 00000000000..b699443d211
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-srl-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.srl.h x0, x0, x0
+    cv.srl.h x1, x1, x1
+    cv.srl.h x2, x2, x2
+    cv.srl.h x8, x8, x8
+    cv.srl.h x20, x20, x20
+    cv.srl.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-srl-sc-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-srl-sc-b-fail.d
new file mode 100644
index 00000000000..84a93573f39
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-srl-sc-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-srl-sc-b-fail.s
+#error_output: cv-simd-srl-sc-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-srl-sc-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-srl-sc-b-fail.l
new file mode 100644
index 00000000000..48f43ede7bc
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-srl-sc-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.srl.sc.b x32,x32,x32'
+.*: Error: illegal operands `cv.srl.sc.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-srl-sc-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-srl-sc-b-fail.s
new file mode 100644
index 00000000000..99cc20de497
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-srl-sc-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.srl.sc.b x32, x32, x32
+    cv.srl.sc.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-srl-sc-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-srl-sc-b-pass.d
new file mode 100644
index 00000000000..a8e07f3ab86
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-srl-sc-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-srl-sc-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	4000507b          	cv.srl.sc.b	zero,zero,zero
+   4:	4010d0fb          	cv.srl.sc.b	ra,ra,ra
+   8:	4021517b          	cv.srl.sc.b	sp,sp,sp
+   c:	4084547b          	cv.srl.sc.b	s0,s0,s0
+  10:	414a5a7b          	cv.srl.sc.b	s4,s4,s4
+  14:	41ffdffb          	cv.srl.sc.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-srl-sc-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-srl-sc-b-pass.s
new file mode 100644
index 00000000000..3e82412e323
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-srl-sc-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.srl.sc.b x0, x0, x0
+    cv.srl.sc.b x1, x1, x1
+    cv.srl.sc.b x2, x2, x2
+    cv.srl.sc.b x8, x8, x8
+    cv.srl.sc.b x20, x20, x20
+    cv.srl.sc.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-srl-sc-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-srl-sc-h-fail.d
new file mode 100644
index 00000000000..d7477a206e4
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-srl-sc-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-srl-sc-h-fail.s
+#error_output: cv-simd-srl-sc-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-srl-sc-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-srl-sc-h-fail.l
new file mode 100644
index 00000000000..721754b3854
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-srl-sc-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.srl.sc.h x32,x32,x32'
+.*: Error: illegal operands `cv.srl.sc.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-srl-sc-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-srl-sc-h-fail.s
new file mode 100644
index 00000000000..2e82f4f2bb7
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-srl-sc-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.srl.sc.h x32, x32, x32
+    cv.srl.sc.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-srl-sc-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-srl-sc-h-pass.d
new file mode 100644
index 00000000000..4b986e2a873
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-srl-sc-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-srl-sc-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	4000407b          	cv.srl.sc.h	zero,zero,zero
+   4:	4010c0fb          	cv.srl.sc.h	ra,ra,ra
+   8:	4021417b          	cv.srl.sc.h	sp,sp,sp
+   c:	4084447b          	cv.srl.sc.h	s0,s0,s0
+  10:	414a4a7b          	cv.srl.sc.h	s4,s4,s4
+  14:	41ffcffb          	cv.srl.sc.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-srl-sc-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-srl-sc-h-pass.s
new file mode 100644
index 00000000000..0369498379c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-srl-sc-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.srl.sc.h x0, x0, x0
+    cv.srl.sc.h x1, x1, x1
+    cv.srl.sc.h x2, x2, x2
+    cv.srl.sc.h x8, x8, x8
+    cv.srl.sc.h x20, x20, x20
+    cv.srl.sc.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-srl-sci-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-srl-sci-b-fail.d
new file mode 100644
index 00000000000..f1189136da3
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-srl-sci-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-srl-sci-b-fail.s
+#error_output: cv-simd-srl-sci-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-srl-sci-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-srl-sci-b-fail.l
new file mode 100644
index 00000000000..f7401636a8d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-srl-sci-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.srl.sci.b x32,x32,4'
+.*: Error: illegal operands `cv.srl.sci.b x33,x33,4'
+.*: Error: immediate value must be 3-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 3-bit unsigned, 8 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-srl-sci-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-srl-sci-b-fail.s
new file mode 100644
index 00000000000..1d938e776c8
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-srl-sci-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.srl.sci.b x32, x32, 4
+    cv.srl.sci.b x33, x33, 4
+    #Boundary Immediate Values Test
+    cv.srl.sci.b x6, x7, -1
+    cv.srl.sci.b x6, x7, 8
diff --git a/gas/testsuite/gas/riscv/cv-simd-srl-sci-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-srl-sci-b-pass.d
new file mode 100644
index 00000000000..c6bffc59aa7
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-srl-sci-b-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-srl-sci-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	4020707b          	cv.srl.sci.b	zero,zero,4
+   4:	4020f0fb          	cv.srl.sci.b	ra,ra,4
+   8:	4021717b          	cv.srl.sci.b	sp,sp,4
+   c:	4024747b          	cv.srl.sci.b	s0,s0,4
+  10:	402a7a7b          	cv.srl.sci.b	s4,s4,4
+  14:	402ffffb          	cv.srl.sci.b	t6,t6,4
+  18:	4003f37b          	cv.srl.sci.b	t1,t2,0
+  1c:	4233f37b          	cv.srl.sci.b	t1,t2,7
diff --git a/gas/testsuite/gas/riscv/cv-simd-srl-sci-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-srl-sci-b-pass.s
new file mode 100644
index 00000000000..9012a9e151c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-srl-sci-b-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.srl.sci.b x0, x0, 4
+    cv.srl.sci.b x1, x1, 4
+    cv.srl.sci.b x2, x2, 4
+    cv.srl.sci.b x8, x8, 4
+    cv.srl.sci.b x20, x20, 4
+    cv.srl.sci.b x31, x31, 4
+    #Immediate Values Test
+    cv.srl.sci.b x6, x7, 0
+    cv.srl.sci.b x6, x7, 7
diff --git a/gas/testsuite/gas/riscv/cv-simd-srl-sci-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-srl-sci-h-fail.d
new file mode 100644
index 00000000000..fbbeae20041
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-srl-sci-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-srl-sci-h-fail.s
+#error_output: cv-simd-srl-sci-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-srl-sci-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-srl-sci-h-fail.l
new file mode 100644
index 00000000000..4ad84725786
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-srl-sci-h-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.srl.sci.h x32,x32,12'
+.*: Error: illegal operands `cv.srl.sci.h x33,x33,12'
+.*: Error: immediate value must be 4-bit unsigned, -1 is out of range
+.*: Error: immediate value must be 4-bit unsigned, 16 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-srl-sci-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-srl-sci-h-fail.s
new file mode 100644
index 00000000000..debd2880a84
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-srl-sci-h-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.srl.sci.h x32, x32, 12
+    cv.srl.sci.h x33, x33, 12
+    #Boundary Immediate Values Test
+    cv.srl.sci.h x6, x7, -1
+    cv.srl.sci.h x6, x7, 16
diff --git a/gas/testsuite/gas/riscv/cv-simd-srl-sci-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-srl-sci-h-pass.d
new file mode 100644
index 00000000000..1a85023870a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-srl-sci-h-pass.d
@@ -0,0 +1,18 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-srl-sci-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	4060607b          	cv.srl.sci.h	zero,zero,12
+   4:	4060e0fb          	cv.srl.sci.h	ra,ra,12
+   8:	4061617b          	cv.srl.sci.h	sp,sp,12
+   c:	4064647b          	cv.srl.sci.h	s0,s0,12
+  10:	406a6a7b          	cv.srl.sci.h	s4,s4,12
+  14:	406feffb          	cv.srl.sci.h	t6,t6,12
+  18:	4003e37b          	cv.srl.sci.h	t1,t2,0
+  1c:	4273e37b          	cv.srl.sci.h	t1,t2,15
diff --git a/gas/testsuite/gas/riscv/cv-simd-srl-sci-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-srl-sci-h-pass.s
new file mode 100644
index 00000000000..8376745954e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-srl-sci-h-pass.s
@@ -0,0 +1,11 @@
+target:
+    #Register Tests
+    cv.srl.sci.h x0, x0, 12
+    cv.srl.sci.h x1, x1, 12
+    cv.srl.sci.h x2, x2, 12
+    cv.srl.sci.h x8, x8, 12
+    cv.srl.sci.h x20, x20, 12
+    cv.srl.sci.h x31, x31, 12
+    #Immediate Values Test
+    cv.srl.sci.h x6, x7, 0
+    cv.srl.sci.h x6, x7, 15
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-sub-b-fail.d
new file mode 100644
index 00000000000..8b07b42ae3a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sub-b-fail.s
+#error_output: cv-simd-sub-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-sub-b-fail.l
new file mode 100644
index 00000000000..02dc7c9c35c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sub.b x32,x32,x32'
+.*: Error: illegal operands `cv.sub.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-sub-b-fail.s
new file mode 100644
index 00000000000..b6bf861f0e1
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.sub.b x32, x32, x32
+    cv.sub.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-sub-b-pass.d
new file mode 100644
index 00000000000..705955d82c6
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sub-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	0800107b          	cv.sub.b	zero,zero,zero
+   4:	081090fb          	cv.sub.b	ra,ra,ra
+   8:	0821117b          	cv.sub.b	sp,sp,sp
+   c:	0884147b          	cv.sub.b	s0,s0,s0
+  10:	094a1a7b          	cv.sub.b	s4,s4,s4
+  14:	09ff9ffb          	cv.sub.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-sub-b-pass.s
new file mode 100644
index 00000000000..7730ac51f78
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.sub.b x0, x0, x0
+    cv.sub.b x1, x1, x1
+    cv.sub.b x2, x2, x2
+    cv.sub.b x8, x8, x8
+    cv.sub.b x20, x20, x20
+    cv.sub.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-div2-fail.d b/gas/testsuite/gas/riscv/cv-simd-sub-div2-fail.d
new file mode 100644
index 00000000000..ce6f41cea9b
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-div2-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sub-div2-fail.s
+#error_output: cv-simd-sub-div2-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-div2-fail.l b/gas/testsuite/gas/riscv/cv-simd-sub-div2-fail.l
new file mode 100644
index 00000000000..7776bd5850f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-div2-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sub.div2 x32,x32,x32'
+.*: Error: illegal operands `cv.sub.div2 x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-div2-fail.s b/gas/testsuite/gas/riscv/cv-simd-sub-div2-fail.s
new file mode 100644
index 00000000000..dc956b8d4b8
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-div2-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.sub.div2 x32, x32, x32
+    cv.sub.div2 x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-div2-pass.d b/gas/testsuite/gas/riscv/cv-simd-sub-div2-pass.d
new file mode 100644
index 00000000000..fb7c2dc1a57
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-div2-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sub-div2-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	7400207b          	cv.sub.div2	zero,zero,zero
+   4:	7410a0fb          	cv.sub.div2	ra,ra,ra
+   8:	7421217b          	cv.sub.div2	sp,sp,sp
+   c:	7484247b          	cv.sub.div2	s0,s0,s0
+  10:	754a2a7b          	cv.sub.div2	s4,s4,s4
+  14:	75ffaffb          	cv.sub.div2	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-div2-pass.s b/gas/testsuite/gas/riscv/cv-simd-sub-div2-pass.s
new file mode 100644
index 00000000000..823f1b7c1f2
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-div2-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.sub.div2 x0, x0, x0
+    cv.sub.div2 x1, x1, x1
+    cv.sub.div2 x2, x2, x2
+    cv.sub.div2 x8, x8, x8
+    cv.sub.div2 x20, x20, x20
+    cv.sub.div2 x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-div4-fail.d b/gas/testsuite/gas/riscv/cv-simd-sub-div4-fail.d
new file mode 100644
index 00000000000..a1cd49b8bdf
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-div4-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sub-div4-fail.s
+#error_output: cv-simd-sub-div4-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-div4-fail.l b/gas/testsuite/gas/riscv/cv-simd-sub-div4-fail.l
new file mode 100644
index 00000000000..886d6783979
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-div4-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sub.div4 x32,x32,x32'
+.*: Error: illegal operands `cv.sub.div4 x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-div4-fail.s b/gas/testsuite/gas/riscv/cv-simd-sub-div4-fail.s
new file mode 100644
index 00000000000..1f9f4bfb8ab
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-div4-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.sub.div4 x32, x32, x32
+    cv.sub.div4 x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-div4-pass.d b/gas/testsuite/gas/riscv/cv-simd-sub-div4-pass.d
new file mode 100644
index 00000000000..8b182daac1d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-div4-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sub-div4-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	7400407b          	cv.sub.div4	zero,zero,zero
+   4:	7410c0fb          	cv.sub.div4	ra,ra,ra
+   8:	7421417b          	cv.sub.div4	sp,sp,sp
+   c:	7484447b          	cv.sub.div4	s0,s0,s0
+  10:	754a4a7b          	cv.sub.div4	s4,s4,s4
+  14:	75ffcffb          	cv.sub.div4	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-div4-pass.s b/gas/testsuite/gas/riscv/cv-simd-sub-div4-pass.s
new file mode 100644
index 00000000000..de6061db498
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-div4-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.sub.div4 x0, x0, x0
+    cv.sub.div4 x1, x1, x1
+    cv.sub.div4 x2, x2, x2
+    cv.sub.div4 x8, x8, x8
+    cv.sub.div4 x20, x20, x20
+    cv.sub.div4 x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-div8-fail.d b/gas/testsuite/gas/riscv/cv-simd-sub-div8-fail.d
new file mode 100644
index 00000000000..a7e4b1a1679
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-div8-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sub-div8-fail.s
+#error_output: cv-simd-sub-div8-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-div8-fail.l b/gas/testsuite/gas/riscv/cv-simd-sub-div8-fail.l
new file mode 100644
index 00000000000..c6141b1dc69
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-div8-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sub.div8 x32,x32,x32'
+.*: Error: illegal operands `cv.sub.div8 x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-div8-fail.s b/gas/testsuite/gas/riscv/cv-simd-sub-div8-fail.s
new file mode 100644
index 00000000000..a9c637837bf
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-div8-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.sub.div8 x32, x32, x32
+    cv.sub.div8 x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-div8-pass.d b/gas/testsuite/gas/riscv/cv-simd-sub-div8-pass.d
new file mode 100644
index 00000000000..f0ce2ce92f0
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-div8-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sub-div8-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	7400607b          	cv.sub.div8	zero,zero,zero
+   4:	7410e0fb          	cv.sub.div8	ra,ra,ra
+   8:	7421617b          	cv.sub.div8	sp,sp,sp
+   c:	7484647b          	cv.sub.div8	s0,s0,s0
+  10:	754a6a7b          	cv.sub.div8	s4,s4,s4
+  14:	75ffeffb          	cv.sub.div8	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-div8-pass.s b/gas/testsuite/gas/riscv/cv-simd-sub-div8-pass.s
new file mode 100644
index 00000000000..c52f5275878
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-div8-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.sub.div8 x0, x0, x0
+    cv.sub.div8 x1, x1, x1
+    cv.sub.div8 x2, x2, x2
+    cv.sub.div8 x8, x8, x8
+    cv.sub.div8 x20, x20, x20
+    cv.sub.div8 x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-sub-h-fail.d
new file mode 100644
index 00000000000..2fd004df55e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sub-h-fail.s
+#error_output: cv-simd-sub-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-sub-h-fail.l
new file mode 100644
index 00000000000..36728c3b84b
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sub.h x32,x32,x32'
+.*: Error: illegal operands `cv.sub.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-sub-h-fail.s
new file mode 100644
index 00000000000..4c8feb42344
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.sub.h x32, x32, x32
+    cv.sub.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-sub-h-pass.d
new file mode 100644
index 00000000000..697f6eef4c4
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sub-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	0800007b          	cv.sub.h	zero,zero,zero
+   4:	081080fb          	cv.sub.h	ra,ra,ra
+   8:	0821017b          	cv.sub.h	sp,sp,sp
+   c:	0884047b          	cv.sub.h	s0,s0,s0
+  10:	094a0a7b          	cv.sub.h	s4,s4,s4
+  14:	09ff8ffb          	cv.sub.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-sub-h-pass.s
new file mode 100644
index 00000000000..e95b834959c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.sub.h x0, x0, x0
+    cv.sub.h x1, x1, x1
+    cv.sub.h x2, x2, x2
+    cv.sub.h x8, x8, x8
+    cv.sub.h x20, x20, x20
+    cv.sub.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-sc-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-sub-sc-b-fail.d
new file mode 100644
index 00000000000..d993b5c20f7
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-sc-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sub-sc-b-fail.s
+#error_output: cv-simd-sub-sc-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-sc-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-sub-sc-b-fail.l
new file mode 100644
index 00000000000..785f3c7c3be
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-sc-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sub.sc.b x32,x32,x32'
+.*: Error: illegal operands `cv.sub.sc.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-sc-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-sub-sc-b-fail.s
new file mode 100644
index 00000000000..59231416a63
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-sc-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.sub.sc.b x32, x32, x32
+    cv.sub.sc.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-sc-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-sub-sc-b-pass.d
new file mode 100644
index 00000000000..3092dca0b2b
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-sc-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sub-sc-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	0800507b          	cv.sub.sc.b	zero,zero,zero
+   4:	0810d0fb          	cv.sub.sc.b	ra,ra,ra
+   8:	0821517b          	cv.sub.sc.b	sp,sp,sp
+   c:	0884547b          	cv.sub.sc.b	s0,s0,s0
+  10:	094a5a7b          	cv.sub.sc.b	s4,s4,s4
+  14:	09ffdffb          	cv.sub.sc.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-sc-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-sub-sc-b-pass.s
new file mode 100644
index 00000000000..0ab843c7170
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-sc-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.sub.sc.b x0, x0, x0
+    cv.sub.sc.b x1, x1, x1
+    cv.sub.sc.b x2, x2, x2
+    cv.sub.sc.b x8, x8, x8
+    cv.sub.sc.b x20, x20, x20
+    cv.sub.sc.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-sc-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-sub-sc-h-fail.d
new file mode 100644
index 00000000000..027adeb6915
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-sc-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sub-sc-h-fail.s
+#error_output: cv-simd-sub-sc-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-sc-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-sub-sc-h-fail.l
new file mode 100644
index 00000000000..5d5c6b67ac2
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-sc-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sub.sc.h x32,x32,x32'
+.*: Error: illegal operands `cv.sub.sc.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-sc-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-sub-sc-h-fail.s
new file mode 100644
index 00000000000..533d9e9855d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-sc-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.sub.sc.h x32, x32, x32
+    cv.sub.sc.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-sc-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-sub-sc-h-pass.d
new file mode 100644
index 00000000000..29c0fbf7d8a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-sc-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sub-sc-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	0800407b          	cv.sub.sc.h	zero,zero,zero
+   4:	0810c0fb          	cv.sub.sc.h	ra,ra,ra
+   8:	0821417b          	cv.sub.sc.h	sp,sp,sp
+   c:	0884447b          	cv.sub.sc.h	s0,s0,s0
+  10:	094a4a7b          	cv.sub.sc.h	s4,s4,s4
+  14:	09ffcffb          	cv.sub.sc.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-sc-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-sub-sc-h-pass.s
new file mode 100644
index 00000000000..7df69795f14
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-sc-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.sub.sc.h x0, x0, x0
+    cv.sub.sc.h x1, x1, x1
+    cv.sub.sc.h x2, x2, x2
+    cv.sub.sc.h x8, x8, x8
+    cv.sub.sc.h x20, x20, x20
+    cv.sub.sc.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-sci-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-sub-sci-b-fail.d
new file mode 100644
index 00000000000..9b1f5367c54
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-sci-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sub-sci-b-fail.s
+#error_output: cv-simd-sub-sci-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-sci-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-sub-sci-b-fail.l
new file mode 100644
index 00000000000..d45c4089d7c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-sci-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sub.sci.b x32,x32,20'
+.*: Error: illegal operands `cv.sub.sci.b x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-sci-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-sub-sci-b-fail.s
new file mode 100644
index 00000000000..f13856f20e3
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-sci-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.sub.sci.b x32, x32, 20
+    cv.sub.sci.b x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.sub.sci.b x6, x7, -33
+    cv.sub.sci.b x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-sci-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-sub-sci-b-pass.d
new file mode 100644
index 00000000000..7de24649a44
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-sci-b-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sub-sci-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	08a0707b          	cv.sub.sci.b	zero,zero,20
+   4:	08a0f0fb          	cv.sub.sci.b	ra,ra,20
+   8:	08a1717b          	cv.sub.sci.b	sp,sp,20
+   c:	08a4747b          	cv.sub.sci.b	s0,s0,20
+  10:	08aa7a7b          	cv.sub.sci.b	s4,s4,20
+  14:	08affffb          	cv.sub.sci.b	t6,t6,20
+  18:	0903f37b          	cv.sub.sci.b	t1,t2,-32
+  1c:	0803f37b          	cv.sub.sci.b	t1,t2,0
+  20:	0af3f37b          	cv.sub.sci.b	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-sci-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-sub-sci-b-pass.s
new file mode 100644
index 00000000000..850e1431f97
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-sci-b-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.sub.sci.b x0, x0, 20
+    cv.sub.sci.b x1, x1, 20
+    cv.sub.sci.b x2, x2, 20
+    cv.sub.sci.b x8, x8, 20
+    cv.sub.sci.b x20, x20, 20
+    cv.sub.sci.b x31, x31, 20
+    #Immediate Values Test
+    cv.sub.sci.b x6, x7, -32
+    cv.sub.sci.b x6, x7, 0
+    cv.sub.sci.b x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-sci-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-sub-sci-h-fail.d
new file mode 100644
index 00000000000..f9703b9271f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-sci-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sub-sci-h-fail.s
+#error_output: cv-simd-sub-sci-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-sci-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-sub-sci-h-fail.l
new file mode 100644
index 00000000000..ff9425a4435
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-sci-h-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.sub.sci.h x32,x32,20'
+.*: Error: illegal operands `cv.sub.sci.h x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-sci-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-sub-sci-h-fail.s
new file mode 100644
index 00000000000..ebb0aa2c2aa
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-sci-h-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.sub.sci.h x32, x32, 20
+    cv.sub.sci.h x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.sub.sci.h x6, x7, -33
+    cv.sub.sci.h x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-sci-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-sub-sci-h-pass.d
new file mode 100644
index 00000000000..36ed84a7392
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-sci-h-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-sub-sci-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	08a0607b          	cv.sub.sci.h	zero,zero,20
+   4:	08a0e0fb          	cv.sub.sci.h	ra,ra,20
+   8:	08a1617b          	cv.sub.sci.h	sp,sp,20
+   c:	08a4647b          	cv.sub.sci.h	s0,s0,20
+  10:	08aa6a7b          	cv.sub.sci.h	s4,s4,20
+  14:	08afeffb          	cv.sub.sci.h	t6,t6,20
+  18:	0903e37b          	cv.sub.sci.h	t1,t2,-32
+  1c:	0803e37b          	cv.sub.sci.h	t1,t2,0
+  20:	0af3e37b          	cv.sub.sci.h	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-sub-sci-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-sub-sci-h-pass.s
new file mode 100644
index 00000000000..1ce641cb351
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-sub-sci-h-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.sub.sci.h x0, x0, 20
+    cv.sub.sci.h x1, x1, 20
+    cv.sub.sci.h x2, x2, 20
+    cv.sub.sci.h x8, x8, 20
+    cv.sub.sci.h x20, x20, 20
+    cv.sub.sci.h x31, x31, 20
+    #Immediate Values Test
+    cv.sub.sci.h x6, x7, -32
+    cv.sub.sci.h x6, x7, 0
+    cv.sub.sci.h x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-subrotmj-div2-fail.d b/gas/testsuite/gas/riscv/cv-simd-subrotmj-div2-fail.d
new file mode 100644
index 00000000000..101d8a33c99
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-subrotmj-div2-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-subrotmj-div2-fail.s
+#error_output: cv-simd-subrotmj-div2-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-subrotmj-div2-fail.l b/gas/testsuite/gas/riscv/cv-simd-subrotmj-div2-fail.l
new file mode 100644
index 00000000000..324fe88cfc7
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-subrotmj-div2-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.subrotmj.div2 x32,x32,x32'
+.*: Error: illegal operands `cv.subrotmj.div2 x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-subrotmj-div2-fail.s b/gas/testsuite/gas/riscv/cv-simd-subrotmj-div2-fail.s
new file mode 100644
index 00000000000..e46657cd5fc
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-subrotmj-div2-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.subrotmj.div2 x32, x32, x32
+    cv.subrotmj.div2 x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-subrotmj-div2-pass.d b/gas/testsuite/gas/riscv/cv-simd-subrotmj-div2-pass.d
new file mode 100644
index 00000000000..2c65227723f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-subrotmj-div2-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-subrotmj-div2-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	6400207b          	cv.subrotmj.div2	zero,zero,zero
+   4:	6410a0fb          	cv.subrotmj.div2	ra,ra,ra
+   8:	6421217b          	cv.subrotmj.div2	sp,sp,sp
+   c:	6484247b          	cv.subrotmj.div2	s0,s0,s0
+  10:	654a2a7b          	cv.subrotmj.div2	s4,s4,s4
+  14:	65ffaffb          	cv.subrotmj.div2	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-subrotmj-div2-pass.s b/gas/testsuite/gas/riscv/cv-simd-subrotmj-div2-pass.s
new file mode 100644
index 00000000000..eed20c971c0
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-subrotmj-div2-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.subrotmj.div2 x0, x0, x0
+    cv.subrotmj.div2 x1, x1, x1
+    cv.subrotmj.div2 x2, x2, x2
+    cv.subrotmj.div2 x8, x8, x8
+    cv.subrotmj.div2 x20, x20, x20
+    cv.subrotmj.div2 x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-subrotmj-div4-fail.d b/gas/testsuite/gas/riscv/cv-simd-subrotmj-div4-fail.d
new file mode 100644
index 00000000000..6eb69c0754f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-subrotmj-div4-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-subrotmj-div4-fail.s
+#error_output: cv-simd-subrotmj-div4-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-subrotmj-div4-fail.l b/gas/testsuite/gas/riscv/cv-simd-subrotmj-div4-fail.l
new file mode 100644
index 00000000000..73b9e0eea13
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-subrotmj-div4-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.subrotmj.div4 x32,x32,x32'
+.*: Error: illegal operands `cv.subrotmj.div4 x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-subrotmj-div4-fail.s b/gas/testsuite/gas/riscv/cv-simd-subrotmj-div4-fail.s
new file mode 100644
index 00000000000..2a684c982b2
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-subrotmj-div4-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.subrotmj.div4 x32, x32, x32
+    cv.subrotmj.div4 x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-subrotmj-div4-pass.d b/gas/testsuite/gas/riscv/cv-simd-subrotmj-div4-pass.d
new file mode 100644
index 00000000000..65084e82258
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-subrotmj-div4-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-subrotmj-div4-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	6400407b          	cv.subrotmj.div4	zero,zero,zero
+   4:	6410c0fb          	cv.subrotmj.div4	ra,ra,ra
+   8:	6421417b          	cv.subrotmj.div4	sp,sp,sp
+   c:	6484447b          	cv.subrotmj.div4	s0,s0,s0
+  10:	654a4a7b          	cv.subrotmj.div4	s4,s4,s4
+  14:	65ffcffb          	cv.subrotmj.div4	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-subrotmj-div4-pass.s b/gas/testsuite/gas/riscv/cv-simd-subrotmj-div4-pass.s
new file mode 100644
index 00000000000..3f3e8784d59
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-subrotmj-div4-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.subrotmj.div4 x0, x0, x0
+    cv.subrotmj.div4 x1, x1, x1
+    cv.subrotmj.div4 x2, x2, x2
+    cv.subrotmj.div4 x8, x8, x8
+    cv.subrotmj.div4 x20, x20, x20
+    cv.subrotmj.div4 x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-subrotmj-div8-fail.d b/gas/testsuite/gas/riscv/cv-simd-subrotmj-div8-fail.d
new file mode 100644
index 00000000000..3102640f806
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-subrotmj-div8-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-subrotmj-div8-fail.s
+#error_output: cv-simd-subrotmj-div8-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-subrotmj-div8-fail.l b/gas/testsuite/gas/riscv/cv-simd-subrotmj-div8-fail.l
new file mode 100644
index 00000000000..558de39886d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-subrotmj-div8-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.subrotmj.div8 x32,x32,x32'
+.*: Error: illegal operands `cv.subrotmj.div8 x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-subrotmj-div8-fail.s b/gas/testsuite/gas/riscv/cv-simd-subrotmj-div8-fail.s
new file mode 100644
index 00000000000..cf0226d41d3
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-subrotmj-div8-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.subrotmj.div8 x32, x32, x32
+    cv.subrotmj.div8 x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-subrotmj-div8-pass.d b/gas/testsuite/gas/riscv/cv-simd-subrotmj-div8-pass.d
new file mode 100644
index 00000000000..29560b68dac
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-subrotmj-div8-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-subrotmj-div8-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	6400607b          	cv.subrotmj.div8	zero,zero,zero
+   4:	6410e0fb          	cv.subrotmj.div8	ra,ra,ra
+   8:	6421617b          	cv.subrotmj.div8	sp,sp,sp
+   c:	6484647b          	cv.subrotmj.div8	s0,s0,s0
+  10:	654a6a7b          	cv.subrotmj.div8	s4,s4,s4
+  14:	65ffeffb          	cv.subrotmj.div8	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-subrotmj-div8-pass.s b/gas/testsuite/gas/riscv/cv-simd-subrotmj-div8-pass.s
new file mode 100644
index 00000000000..7e088796438
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-subrotmj-div8-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.subrotmj.div8 x0, x0, x0
+    cv.subrotmj.div8 x1, x1, x1
+    cv.subrotmj.div8 x2, x2, x2
+    cv.subrotmj.div8 x8, x8, x8
+    cv.subrotmj.div8 x20, x20, x20
+    cv.subrotmj.div8 x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-subrotmj-fail.d b/gas/testsuite/gas/riscv/cv-simd-subrotmj-fail.d
new file mode 100644
index 00000000000..21ace4da2d8
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-subrotmj-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-subrotmj-fail.s
+#error_output: cv-simd-subrotmj-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-subrotmj-fail.l b/gas/testsuite/gas/riscv/cv-simd-subrotmj-fail.l
new file mode 100644
index 00000000000..1e7f31b1221
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-subrotmj-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.subrotmj x32,x32,x32'
+.*: Error: illegal operands `cv.subrotmj x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-subrotmj-fail.s b/gas/testsuite/gas/riscv/cv-simd-subrotmj-fail.s
new file mode 100644
index 00000000000..3fddab9d73d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-subrotmj-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.subrotmj x32, x32, x32
+    cv.subrotmj x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-subrotmj-pass.d b/gas/testsuite/gas/riscv/cv-simd-subrotmj-pass.d
new file mode 100644
index 00000000000..c6843343b7e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-subrotmj-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-subrotmj-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	6400007b          	cv.subrotmj	zero,zero,zero
+   4:	641080fb          	cv.subrotmj	ra,ra,ra
+   8:	6421017b          	cv.subrotmj	sp,sp,sp
+   c:	6484047b          	cv.subrotmj	s0,s0,s0
+  10:	654a0a7b          	cv.subrotmj	s4,s4,s4
+  14:	65ff8ffb          	cv.subrotmj	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-subrotmj-pass.s b/gas/testsuite/gas/riscv/cv-simd-subrotmj-pass.s
new file mode 100644
index 00000000000..c2ada3395bf
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-subrotmj-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.subrotmj x0, x0, x0
+    cv.subrotmj x1, x1, x1
+    cv.subrotmj x2, x2, x2
+    cv.subrotmj x8, x8, x8
+    cv.subrotmj x20, x20, x20
+    cv.subrotmj x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-xor-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-xor-b-fail.d
new file mode 100644
index 00000000000..13adc9f2136
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-xor-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-xor-b-fail.s
+#error_output: cv-simd-xor-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-xor-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-xor-b-fail.l
new file mode 100644
index 00000000000..85aba380181
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-xor-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.xor.b x32,x32,x32'
+.*: Error: illegal operands `cv.xor.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-xor-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-xor-b-fail.s
new file mode 100644
index 00000000000..f81d3eda47b
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-xor-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.xor.b x32, x32, x32
+    cv.xor.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-xor-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-xor-b-pass.d
new file mode 100644
index 00000000000..c5aed6ec9d6
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-xor-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-xor-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	6000107b          	cv.xor.b	zero,zero,zero
+   4:	601090fb          	cv.xor.b	ra,ra,ra
+   8:	6021117b          	cv.xor.b	sp,sp,sp
+   c:	6084147b          	cv.xor.b	s0,s0,s0
+  10:	614a1a7b          	cv.xor.b	s4,s4,s4
+  14:	61ff9ffb          	cv.xor.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-xor-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-xor-b-pass.s
new file mode 100644
index 00000000000..aefc8f7f2b4
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-xor-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.xor.b x0, x0, x0
+    cv.xor.b x1, x1, x1
+    cv.xor.b x2, x2, x2
+    cv.xor.b x8, x8, x8
+    cv.xor.b x20, x20, x20
+    cv.xor.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-xor-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-xor-h-fail.d
new file mode 100644
index 00000000000..2d5d8f2da79
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-xor-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-xor-h-fail.s
+#error_output: cv-simd-xor-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-xor-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-xor-h-fail.l
new file mode 100644
index 00000000000..e17ec8a240d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-xor-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.xor.h x32,x32,x32'
+.*: Error: illegal operands `cv.xor.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-xor-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-xor-h-fail.s
new file mode 100644
index 00000000000..84e9c95215b
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-xor-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.xor.h x32, x32, x32
+    cv.xor.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-xor-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-xor-h-pass.d
new file mode 100644
index 00000000000..377c5f4257e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-xor-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-xor-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	6000007b          	cv.xor.h	zero,zero,zero
+   4:	601080fb          	cv.xor.h	ra,ra,ra
+   8:	6021017b          	cv.xor.h	sp,sp,sp
+   c:	6084047b          	cv.xor.h	s0,s0,s0
+  10:	614a0a7b          	cv.xor.h	s4,s4,s4
+  14:	61ff8ffb          	cv.xor.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-xor-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-xor-h-pass.s
new file mode 100644
index 00000000000..01fe1c40655
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-xor-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.xor.h x0, x0, x0
+    cv.xor.h x1, x1, x1
+    cv.xor.h x2, x2, x2
+    cv.xor.h x8, x8, x8
+    cv.xor.h x20, x20, x20
+    cv.xor.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-xor-sc-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-xor-sc-b-fail.d
new file mode 100644
index 00000000000..5467367f223
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-xor-sc-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-xor-sc-b-fail.s
+#error_output: cv-simd-xor-sc-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-xor-sc-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-xor-sc-b-fail.l
new file mode 100644
index 00000000000..91a28985589
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-xor-sc-b-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.xor.sc.b x32,x32,x32'
+.*: Error: illegal operands `cv.xor.sc.b x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-xor-sc-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-xor-sc-b-fail.s
new file mode 100644
index 00000000000..7de717fea8e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-xor-sc-b-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.xor.sc.b x32, x32, x32
+    cv.xor.sc.b x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-xor-sc-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-xor-sc-b-pass.d
new file mode 100644
index 00000000000..12e6917f2b1
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-xor-sc-b-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-xor-sc-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	6000507b          	cv.xor.sc.b	zero,zero,zero
+   4:	6010d0fb          	cv.xor.sc.b	ra,ra,ra
+   8:	6021517b          	cv.xor.sc.b	sp,sp,sp
+   c:	6084547b          	cv.xor.sc.b	s0,s0,s0
+  10:	614a5a7b          	cv.xor.sc.b	s4,s4,s4
+  14:	61ffdffb          	cv.xor.sc.b	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-xor-sc-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-xor-sc-b-pass.s
new file mode 100644
index 00000000000..0c7238d6043
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-xor-sc-b-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.xor.sc.b x0, x0, x0
+    cv.xor.sc.b x1, x1, x1
+    cv.xor.sc.b x2, x2, x2
+    cv.xor.sc.b x8, x8, x8
+    cv.xor.sc.b x20, x20, x20
+    cv.xor.sc.b x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-xor-sc-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-xor-sc-h-fail.d
new file mode 100644
index 00000000000..7712206da4f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-xor-sc-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-xor-sc-h-fail.s
+#error_output: cv-simd-xor-sc-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-xor-sc-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-xor-sc-h-fail.l
new file mode 100644
index 00000000000..b2417b49029
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-xor-sc-h-fail.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.xor.sc.h x32,x32,x32'
+.*: Error: illegal operands `cv.xor.sc.h x33,x33,x33'
diff --git a/gas/testsuite/gas/riscv/cv-simd-xor-sc-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-xor-sc-h-fail.s
new file mode 100644
index 00000000000..0063297c4cf
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-xor-sc-h-fail.s
@@ -0,0 +1,4 @@
+target:
+    #Boundary Register Tests
+    cv.xor.sc.h x32, x32, x32
+    cv.xor.sc.h x33, x33, x33
diff --git a/gas/testsuite/gas/riscv/cv-simd-xor-sc-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-xor-sc-h-pass.d
new file mode 100644
index 00000000000..5dc5fd83e2c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-xor-sc-h-pass.d
@@ -0,0 +1,16 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-xor-sc-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	6000407b          	cv.xor.sc.h	zero,zero,zero
+   4:	6010c0fb          	cv.xor.sc.h	ra,ra,ra
+   8:	6021417b          	cv.xor.sc.h	sp,sp,sp
+   c:	6084447b          	cv.xor.sc.h	s0,s0,s0
+  10:	614a4a7b          	cv.xor.sc.h	s4,s4,s4
+  14:	61ffcffb          	cv.xor.sc.h	t6,t6,t6
diff --git a/gas/testsuite/gas/riscv/cv-simd-xor-sc-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-xor-sc-h-pass.s
new file mode 100644
index 00000000000..b579d11f7c7
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-xor-sc-h-pass.s
@@ -0,0 +1,8 @@
+target:
+    #Register Tests
+    cv.xor.sc.h x0, x0, x0
+    cv.xor.sc.h x1, x1, x1
+    cv.xor.sc.h x2, x2, x2
+    cv.xor.sc.h x8, x8, x8
+    cv.xor.sc.h x20, x20, x20
+    cv.xor.sc.h x31, x31, x31
diff --git a/gas/testsuite/gas/riscv/cv-simd-xor-sci-b-fail.d b/gas/testsuite/gas/riscv/cv-simd-xor-sci-b-fail.d
new file mode 100644
index 00000000000..52dcc30c7ef
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-xor-sci-b-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-xor-sci-b-fail.s
+#error_output: cv-simd-xor-sci-b-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-xor-sci-b-fail.l b/gas/testsuite/gas/riscv/cv-simd-xor-sci-b-fail.l
new file mode 100644
index 00000000000..64e90bac715
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-xor-sci-b-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.xor.sci.b x32,x32,20'
+.*: Error: illegal operands `cv.xor.sci.b x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-xor-sci-b-fail.s b/gas/testsuite/gas/riscv/cv-simd-xor-sci-b-fail.s
new file mode 100644
index 00000000000..0a33168810f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-xor-sci-b-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.xor.sci.b x32, x32, 20
+    cv.xor.sci.b x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.xor.sci.b x6, x7, -33
+    cv.xor.sci.b x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-xor-sci-b-pass.d b/gas/testsuite/gas/riscv/cv-simd-xor-sci-b-pass.d
new file mode 100644
index 00000000000..e1eab657bfb
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-xor-sci-b-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-xor-sci-b-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	60a0707b          	cv.xor.sci.b	zero,zero,20
+   4:	60a0f0fb          	cv.xor.sci.b	ra,ra,20
+   8:	60a1717b          	cv.xor.sci.b	sp,sp,20
+   c:	60a4747b          	cv.xor.sci.b	s0,s0,20
+  10:	60aa7a7b          	cv.xor.sci.b	s4,s4,20
+  14:	60affffb          	cv.xor.sci.b	t6,t6,20
+  18:	6103f37b          	cv.xor.sci.b	t1,t2,-32
+  1c:	6003f37b          	cv.xor.sci.b	t1,t2,0
+  20:	62f3f37b          	cv.xor.sci.b	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-xor-sci-b-pass.s b/gas/testsuite/gas/riscv/cv-simd-xor-sci-b-pass.s
new file mode 100644
index 00000000000..3636df6374a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-xor-sci-b-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.xor.sci.b x0, x0, 20
+    cv.xor.sci.b x1, x1, 20
+    cv.xor.sci.b x2, x2, 20
+    cv.xor.sci.b x8, x8, 20
+    cv.xor.sci.b x20, x20, 20
+    cv.xor.sci.b x31, x31, 20
+    #Immediate Values Test
+    cv.xor.sci.b x6, x7, -32
+    cv.xor.sci.b x6, x7, 0
+    cv.xor.sci.b x6, x7, 31
diff --git a/gas/testsuite/gas/riscv/cv-simd-xor-sci-h-fail.d b/gas/testsuite/gas/riscv/cv-simd-xor-sci-h-fail.d
new file mode 100644
index 00000000000..1572fc54ec3
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-xor-sci-h-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-xor-sci-h-fail.s
+#error_output: cv-simd-xor-sci-h-fail.l
diff --git a/gas/testsuite/gas/riscv/cv-simd-xor-sci-h-fail.l b/gas/testsuite/gas/riscv/cv-simd-xor-sci-h-fail.l
new file mode 100644
index 00000000000..a4124657858
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-xor-sci-h-fail.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*: Error: illegal operands `cv.xor.sci.h x32,x32,20'
+.*: Error: illegal operands `cv.xor.sci.h x33,x33,20'
+.*: Error: immediate value must be 6-bit signed, -33 is out of range
+.*: Error: immediate value must be 6-bit signed, 32 is out of range
diff --git a/gas/testsuite/gas/riscv/cv-simd-xor-sci-h-fail.s b/gas/testsuite/gas/riscv/cv-simd-xor-sci-h-fail.s
new file mode 100644
index 00000000000..0448863d511
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-xor-sci-h-fail.s
@@ -0,0 +1,7 @@
+target:
+    #Boundary Register Tests
+    cv.xor.sci.h x32, x32, 20
+    cv.xor.sci.h x33, x33, 20
+    #Boundary Immediate Values Test
+    cv.xor.sci.h x6, x7, -33
+    cv.xor.sci.h x6, x7, 32
diff --git a/gas/testsuite/gas/riscv/cv-simd-xor-sci-h-pass.d b/gas/testsuite/gas/riscv/cv-simd-xor-sci-h-pass.d
new file mode 100644
index 00000000000..e84c597abc0
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-xor-sci-h-pass.d
@@ -0,0 +1,19 @@
+#as: -march=rv32i_xcvsimd
+#source: cv-simd-xor-sci-h-pass.s
+#objdump: -d
+
+.*:[ 	]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+   0:	60a0607b          	cv.xor.sci.h	zero,zero,20
+   4:	60a0e0fb          	cv.xor.sci.h	ra,ra,20
+   8:	60a1617b          	cv.xor.sci.h	sp,sp,20
+   c:	60a4647b          	cv.xor.sci.h	s0,s0,20
+  10:	60aa6a7b          	cv.xor.sci.h	s4,s4,20
+  14:	60afeffb          	cv.xor.sci.h	t6,t6,20
+  18:	6103e37b          	cv.xor.sci.h	t1,t2,-32
+  1c:	6003e37b          	cv.xor.sci.h	t1,t2,0
+  20:	62f3e37b          	cv.xor.sci.h	t1,t2,31
diff --git a/gas/testsuite/gas/riscv/cv-simd-xor-sci-h-pass.s b/gas/testsuite/gas/riscv/cv-simd-xor-sci-h-pass.s
new file mode 100644
index 00000000000..e0c94ee6223
--- /dev/null
+++ b/gas/testsuite/gas/riscv/cv-simd-xor-sci-h-pass.s
@@ -0,0 +1,12 @@
+target:
+    #Register Tests
+    cv.xor.sci.h x0, x0, 20
+    cv.xor.sci.h x1, x1, 20
+    cv.xor.sci.h x2, x2, 20
+    cv.xor.sci.h x8, x8, 20
+    cv.xor.sci.h x20, x20, 20
+    cv.xor.sci.h x31, x31, 20
+    #Immediate Values Test
+    cv.xor.sci.h x6, x7, -32
+    cv.xor.sci.h x6, x7, 0
+    cv.xor.sci.h x6, x7, 31
diff --git a/include/opcode/riscv-opc.h b/include/opcode/riscv-opc.h
index e77b49a6298..3fec649495f 100644
--- a/include/opcode/riscv-opc.h
+++ b/include/opcode/riscv-opc.h
@@ -2424,6 +2424,449 @@
 #define MASK_CV_SUBRN 0xc000707f
 #define MATCH_CV_SUBURN 0xc000305b
 #define MASK_CV_SUBURN 0xc000707f
+/* Vendor-specific (CORE-V) Xcvsimd instructions. */
+#define MATCH_CV_ADD_H             0x7b
+#define MATCH_CV_ADD_B             0x107b
+#define MATCH_CV_ADD_SC_H          0x407b
+#define MATCH_CV_ADD_SC_B          0x507b
+#define MATCH_CV_ADD_SCI_H         0x607b
+#define MATCH_CV_ADD_SCI_B         0x707b
+#define MATCH_CV_SUB_H             0x800007b
+#define MATCH_CV_SUB_B             0x800107b
+#define MATCH_CV_SUB_SC_H          0x800407b
+#define MATCH_CV_SUB_SC_B          0x800507b
+#define MATCH_CV_SUB_SCI_H         0x800607b
+#define MATCH_CV_SUB_SCI_B         0x800707b
+#define MATCH_CV_AVG_H             0x1000007b
+#define MATCH_CV_AVG_B             0x1000107b
+#define MATCH_CV_AVG_SC_H          0x1000407b
+#define MATCH_CV_AVG_SC_B          0x1000507b
+#define MATCH_CV_AVG_SCI_H         0x1000607b
+#define MATCH_CV_AVG_SCI_B         0x1000707b
+#define MATCH_CV_AVGU_H            0x1800007b
+#define MATCH_CV_AVGU_B            0x1800107b
+#define MATCH_CV_AVGU_SC_H         0x1800407b
+#define MATCH_CV_AVGU_SC_B         0x1800507b
+#define MATCH_CV_AVGU_SCI_H        0x1800607b
+#define MATCH_CV_AVGU_SCI_B        0x1800707b
+#define MATCH_CV_MIN_H             0x2000007b
+#define MATCH_CV_MIN_B             0x2000107b
+#define MATCH_CV_MIN_SC_H          0x2000407b
+#define MATCH_CV_MIN_SC_B          0x2000507b
+#define MATCH_CV_MIN_SCI_H         0x2000607b
+#define MATCH_CV_MIN_SCI_B         0x2000707b
+#define MATCH_CV_MINU_H            0x2800007b
+#define MATCH_CV_MINU_B            0x2800107b
+#define MATCH_CV_MINU_SC_H         0x2800407b
+#define MATCH_CV_MINU_SC_B         0x2800507b
+#define MATCH_CV_MINU_SCI_H        0x2800607b
+#define MATCH_CV_MINU_SCI_B        0x2800707b
+#define MATCH_CV_MAX_H             0x3000007b
+#define MATCH_CV_MAX_B             0x3000107b
+#define MATCH_CV_MAX_SC_H          0x3000407b
+#define MATCH_CV_MAX_SC_B          0x3000507b
+#define MATCH_CV_MAX_SCI_H         0x3000607b
+#define MATCH_CV_MAX_SCI_B         0x3000707b
+#define MATCH_CV_MAXU_H            0x3800007b
+#define MATCH_CV_MAXU_B            0x3800107b
+#define MATCH_CV_MAXU_SC_H         0x3800407b
+#define MATCH_CV_MAXU_SC_B         0x3800507b
+#define MATCH_CV_MAXU_SCI_H        0x3800607b
+#define MATCH_CV_MAXU_SCI_B        0x3800707b
+#define MATCH_CV_SRL_H             0x4000007b
+#define MATCH_CV_SRL_B             0x4000107b
+#define MATCH_CV_SRL_SC_H          0x4000407b
+#define MATCH_CV_SRL_SC_B          0x4000507b
+#define MATCH_CV_SRL_SCI_H         0x4000607b
+#define MATCH_CV_SRL_SCI_B         0x4000707b
+#define MATCH_CV_SRA_H             0x4800007b
+#define MATCH_CV_SRA_B             0x4800107b
+#define MATCH_CV_SRA_SC_H          0x4800407b
+#define MATCH_CV_SRA_SC_B          0x4800507b
+#define MATCH_CV_SRA_SCI_H         0x4800607b
+#define MATCH_CV_SRA_SCI_B         0x4800707b
+#define MATCH_CV_SLL_H             0x5000007b
+#define MATCH_CV_SLL_B             0x5000107b
+#define MATCH_CV_SLL_SC_H          0x5000407b
+#define MATCH_CV_SLL_SC_B          0x5000507b
+#define MATCH_CV_SLL_SCI_H         0x5000607b
+#define MATCH_CV_SLL_SCI_B         0x5000707b
+#define MATCH_CV_OR_H              0x5800007b
+#define MATCH_CV_OR_B              0x5800107b
+#define MATCH_CV_OR_SC_H           0x5800407b
+#define MATCH_CV_OR_SC_B           0x5800507b
+#define MATCH_CV_OR_SCI_H          0x5800607b
+#define MATCH_CV_OR_SCI_B          0x5800707b
+#define MATCH_CV_XOR_H             0x6000007b
+#define MATCH_CV_XOR_B             0x6000107b
+#define MATCH_CV_XOR_SC_H          0x6000407b
+#define MATCH_CV_XOR_SC_B          0x6000507b
+#define MATCH_CV_XOR_SCI_H         0x6000607b
+#define MATCH_CV_XOR_SCI_B         0x6000707b
+#define MATCH_CV_AND_H             0x6800007b
+#define MATCH_CV_AND_B             0x6800107b
+#define MATCH_CV_AND_SC_H          0x6800407b
+#define MATCH_CV_AND_SC_B          0x6800507b
+#define MATCH_CV_AND_SCI_H         0x6800607b
+#define MATCH_CV_AND_SCI_B         0x6800707b
+#define MATCH_CV_ABS_H             0x7000007b
+#define MATCH_CV_ABS_B             0x7000107b
+#define MATCH_CV_DOTUP_H           0x8000007b
+#define MATCH_CV_DOTUP_B           0x8000107b
+#define MATCH_CV_DOTUP_SC_H        0x8000407b
+#define MATCH_CV_DOTUP_SC_B        0x8000507b
+#define MATCH_CV_DOTUP_SCI_H       0x8000607b
+#define MATCH_CV_DOTUP_SCI_B       0x8000707b
+#define MATCH_CV_DOTUSP_H          0x8800007b
+#define MATCH_CV_DOTUSP_B          0x8800107b
+#define MATCH_CV_DOTUSP_SC_H       0x8800407b
+#define MATCH_CV_DOTUSP_SC_B       0x8800507b
+#define MATCH_CV_DOTUSP_SCI_H      0x8800607b
+#define MATCH_CV_DOTUSP_SCI_B      0x8800707b
+#define MATCH_CV_DOTSP_H           0x9000007b
+#define MATCH_CV_DOTSP_B           0x9000107b
+#define MATCH_CV_DOTSP_SC_H        0x9000407b
+#define MATCH_CV_DOTSP_SC_B        0x9000507b
+#define MATCH_CV_DOTSP_SCI_H       0x9000607b
+#define MATCH_CV_DOTSP_SCI_B       0x9000707b
+#define MATCH_CV_SDOTUP_H          0x9800007b
+#define MATCH_CV_SDOTUP_B          0x9800107b
+#define MATCH_CV_SDOTUP_SC_H       0x9800407b
+#define MATCH_CV_SDOTUP_SC_B       0x9800507b
+#define MATCH_CV_SDOTUP_SCI_H      0x9800607b
+#define MATCH_CV_SDOTUP_SCI_B      0x9800707b
+#define MATCH_CV_SDOTUSP_H         0xa000007b
+#define MATCH_CV_SDOTUSP_B         0xa000107b
+#define MATCH_CV_SDOTUSP_SC_H      0xa000407b
+#define MATCH_CV_SDOTUSP_SC_B      0xa000507b
+#define MATCH_CV_SDOTUSP_SCI_H     0xa000607b
+#define MATCH_CV_SDOTUSP_SCI_B     0xa000707b
+#define MATCH_CV_SDOTSP_H          0xa800007b
+#define MATCH_CV_SDOTSP_B          0xa800107b
+#define MATCH_CV_SDOTSP_SC_H       0xa800407b
+#define MATCH_CV_SDOTSP_SC_B       0xa800507b
+#define MATCH_CV_SDOTSP_SCI_H      0xa800607b
+#define MATCH_CV_SDOTSP_SCI_B      0xa800707b
+#define MATCH_CV_EXTRACT_H         0xb800007b
+#define MATCH_CV_EXTRACT_B         0xb800107b
+#define MATCH_CV_EXTRACTU_H        0xb800207b
+#define MATCH_CV_EXTRACTU_B        0xb800307b
+#define MATCH_CV_INSERT_H          0xb800407b
+#define MATCH_CV_INSERT_B          0xb800507b
+#define MATCH_CV_SHUFFLE_H         0xc000007b
+#define MATCH_CV_SHUFFLE_B         0xc000107b
+#define MATCH_CV_SHUFFLE_SCI_H     0xc000607b
+#define MATCH_CV_SHUFFLEI0_SCI_B   0xc000707b
+#define MATCH_CV_SHUFFLEI1_SCI_B   0xc800707b
+#define MATCH_CV_SHUFFLEI2_SCI_B   0xd000707b
+#define MATCH_CV_SHUFFLEI3_SCI_B   0xd800707b
+#define MATCH_CV_SHUFFLE2_H        0xe000007b
+#define MATCH_CV_SHUFFLE2_B        0xe000107b
+#define MATCH_CV_PACK              0xf000007b
+#define MATCH_CV_PACK_H            0xf200007b
+#define MATCH_CV_PACKHI_B          0xfa00107b
+#define MATCH_CV_PACKLO_B          0xf800107b
+#define MATCH_CV_CMPEQ_H           0x400007b
+#define MATCH_CV_CMPEQ_B           0x400107b
+#define MATCH_CV_CMPEQ_SC_H        0x400407b
+#define MATCH_CV_CMPEQ_SC_B        0x400507b
+#define MATCH_CV_CMPEQ_SCI_H       0x400607b
+#define MATCH_CV_CMPEQ_SCI_B       0x400707b
+#define MATCH_CV_CMPNE_H           0xc00007b
+#define MATCH_CV_CMPNE_B           0xc00107b
+#define MATCH_CV_CMPNE_SC_H        0xc00407b
+#define MATCH_CV_CMPNE_SC_B        0xc00507b
+#define MATCH_CV_CMPNE_SCI_H       0xc00607b
+#define MATCH_CV_CMPNE_SCI_B       0xc00707b
+#define MATCH_CV_CMPGT_H           0x1400007b
+#define MATCH_CV_CMPGT_B           0x1400107b
+#define MATCH_CV_CMPGT_SC_H        0x1400407b
+#define MATCH_CV_CMPGT_SC_B        0x1400507b
+#define MATCH_CV_CMPGT_SCI_H       0x1400607b
+#define MATCH_CV_CMPGT_SCI_B       0x1400707b
+#define MATCH_CV_CMPGE_H           0x1c00007b
+#define MATCH_CV_CMPGE_B           0x1c00107b
+#define MATCH_CV_CMPGE_SC_H        0x1c00407b
+#define MATCH_CV_CMPGE_SC_B        0x1c00507b
+#define MATCH_CV_CMPGE_SCI_H       0x1c00607b
+#define MATCH_CV_CMPGE_SCI_B       0x1c00707b
+#define MATCH_CV_CMPLT_H           0x2400007b
+#define MATCH_CV_CMPLT_B           0x2400107b
+#define MATCH_CV_CMPLT_SC_H        0x2400407b
+#define MATCH_CV_CMPLT_SC_B        0x2400507b
+#define MATCH_CV_CMPLT_SCI_H       0x2400607b
+#define MATCH_CV_CMPLT_SCI_B       0x2400707b
+#define MATCH_CV_CMPLE_H           0x2c00007b
+#define MATCH_CV_CMPLE_B           0x2c00107b
+#define MATCH_CV_CMPLE_SC_H        0x2c00407b
+#define MATCH_CV_CMPLE_SC_B        0x2c00507b
+#define MATCH_CV_CMPLE_SCI_H       0x2c00607b
+#define MATCH_CV_CMPLE_SCI_B       0x2c00707b
+#define MATCH_CV_CMPGTU_H          0x3400007b
+#define MATCH_CV_CMPGTU_B          0x3400107b
+#define MATCH_CV_CMPGTU_SC_H       0x3400407b
+#define MATCH_CV_CMPGTU_SC_B       0x3400507b
+#define MATCH_CV_CMPGTU_SCI_H      0x3400607b
+#define MATCH_CV_CMPGTU_SCI_B      0x3400707b
+#define MATCH_CV_CMPGEU_H          0x3c00007b
+#define MATCH_CV_CMPGEU_B          0x3c00107b
+#define MATCH_CV_CMPGEU_SC_H       0x3c00407b
+#define MATCH_CV_CMPGEU_SC_B       0x3c00507b
+#define MATCH_CV_CMPGEU_SCI_H      0x3c00607b
+#define MATCH_CV_CMPGEU_SCI_B      0x3c00707b
+#define MATCH_CV_CMPLTU_H          0x4400007b
+#define MATCH_CV_CMPLTU_B          0x4400107b
+#define MATCH_CV_CMPLTU_SC_H       0x4400407b
+#define MATCH_CV_CMPLTU_SC_B       0x4400507b
+#define MATCH_CV_CMPLTU_SCI_H      0x4400607b
+#define MATCH_CV_CMPLTU_SCI_B      0x4400707b
+#define MATCH_CV_CMPLEU_H          0x4c00007b
+#define MATCH_CV_CMPLEU_B          0x4c00107b
+#define MATCH_CV_CMPLEU_SC_H       0x4c00407b
+#define MATCH_CV_CMPLEU_SC_B       0x4c00507b
+#define MATCH_CV_CMPLEU_SCI_H      0x4c00607b
+#define MATCH_CV_CMPLEU_SCI_B      0x4c00707b
+#define MATCH_CV_CPLXMUL_R         0x5400007b
+#define MATCH_CV_CPLXMUL_I         0x5600007b
+#define MATCH_CV_CPLXMUL_R_DIV2    0x5400207b
+#define MATCH_CV_CPLXMUL_I_DIV2    0x5600207b
+#define MATCH_CV_CPLXMUL_R_DIV4    0x5400407b
+#define MATCH_CV_CPLXMUL_I_DIV4    0x5600407b
+#define MATCH_CV_CPLXMUL_R_DIV8    0x5400607b
+#define MATCH_CV_CPLXMUL_I_DIV8    0x5600607b
+#define MATCH_CV_CPLXCONJ          0x5c00007b
+#define MATCH_CV_SUBROTMJ          0x6400007b
+#define MATCH_CV_SUBROTMJ_DIV2     0x6400207b
+#define MATCH_CV_SUBROTMJ_DIV4     0x6400407b
+#define MATCH_CV_SUBROTMJ_DIV8     0x6400607b
+#define MATCH_CV_ADD_DIV2          0x6c00207b
+#define MATCH_CV_ADD_DIV4          0x6c00407b
+#define MATCH_CV_ADD_DIV8          0x6c00607b
+#define MATCH_CV_SUB_DIV2          0x7400207b
+#define MATCH_CV_SUB_DIV4          0x7400407b
+#define MATCH_CV_SUB_DIV8          0x7400607b
+#define MASK_CV_ADD_H              0xfe00707f
+#define MASK_CV_ADD_B              0xfe00707f
+#define MASK_CV_ADD_SC_H           0xfe00707f
+#define MASK_CV_ADD_SC_B           0xfe00707f
+#define MASK_CV_ADD_SCI_H          0xfc00707f
+#define MASK_CV_ADD_SCI_B          0xfc00707f
+#define MASK_CV_SUB_H              0xfe00707f
+#define MASK_CV_SUB_B              0xfe00707f
+#define MASK_CV_SUB_SC_H           0xfe00707f
+#define MASK_CV_SUB_SC_B           0xfe00707f
+#define MASK_CV_SUB_SCI_H          0xfc00707f
+#define MASK_CV_SUB_SCI_B          0xfc00707f
+#define MASK_CV_AVG_H              0xfe00707f
+#define MASK_CV_AVG_B              0xfe00707f
+#define MASK_CV_AVG_SC_H           0xfe00707f
+#define MASK_CV_AVG_SC_B           0xfe00707f
+#define MASK_CV_AVG_SCI_H          0xfc00707f
+#define MASK_CV_AVG_SCI_B          0xfc00707f
+#define MASK_CV_AVGU_H             0xfe00707f
+#define MASK_CV_AVGU_B             0xfe00707f
+#define MASK_CV_AVGU_SC_H          0xfe00707f
+#define MASK_CV_AVGU_SC_B          0xfe00707f
+#define MASK_CV_AVGU_SCI_H         0xfc00707f
+#define MASK_CV_AVGU_SCI_B         0xfc00707f
+#define MASK_CV_MIN_H              0xfe00707f
+#define MASK_CV_MIN_B              0xfe00707f
+#define MASK_CV_MIN_SC_H           0xfe00707f
+#define MASK_CV_MIN_SC_B           0xfe00707f
+#define MASK_CV_MIN_SCI_H          0xfc00707f
+#define MASK_CV_MIN_SCI_B          0xfc00707f
+#define MASK_CV_MINU_H             0xfe00707f
+#define MASK_CV_MINU_B             0xfe00707f
+#define MASK_CV_MINU_SC_H          0xfe00707f
+#define MASK_CV_MINU_SC_B          0xfe00707f
+#define MASK_CV_MINU_SCI_H         0xfc00707f
+#define MASK_CV_MINU_SCI_B         0xfc00707f
+#define MASK_CV_MAX_H              0xfe00707f
+#define MASK_CV_MAX_B              0xfe00707f
+#define MASK_CV_MAX_SC_H           0xfe00707f
+#define MASK_CV_MAX_SC_B           0xfe00707f
+#define MASK_CV_MAX_SCI_H          0xfc00707f
+#define MASK_CV_MAX_SCI_B          0xfc00707f
+#define MASK_CV_MAXU_H             0xfe00707f
+#define MASK_CV_MAXU_B             0xfe00707f
+#define MASK_CV_MAXU_SC_H          0xfe00707f
+#define MASK_CV_MAXU_SC_B          0xfe00707f
+#define MASK_CV_MAXU_SCI_H         0xfc00707f
+#define MASK_CV_MAXU_SCI_B         0xfc00707f
+#define MASK_CV_SRL_H              0xfe00707f
+#define MASK_CV_SRL_B              0xfe00707f
+#define MASK_CV_SRL_SC_H           0xfe00707f
+#define MASK_CV_SRL_SC_B           0xfe00707f
+#define MASK_CV_SRL_SCI_H          0xfc00707f
+#define MASK_CV_SRL_SCI_B          0xfc00707f
+#define MASK_CV_SRA_H              0xfe00707f
+#define MASK_CV_SRA_B              0xfe00707f
+#define MASK_CV_SRA_SC_H           0xfe00707f
+#define MASK_CV_SRA_SC_B           0xfe00707f
+#define MASK_CV_SRA_SCI_H          0xfc00707f
+#define MASK_CV_SRA_SCI_B          0xfc00707f
+#define MASK_CV_SLL_H              0xfe00707f
+#define MASK_CV_SLL_B              0xfe00707f
+#define MASK_CV_SLL_SC_H           0xfe00707f
+#define MASK_CV_SLL_SC_B           0xfe00707f
+#define MASK_CV_SLL_SCI_H          0xfc00707f
+#define MASK_CV_SLL_SCI_B          0xfc00707f
+#define MASK_CV_OR_H               0xfe00707f
+#define MASK_CV_OR_B               0xfe00707f
+#define MASK_CV_OR_SC_H            0xfe00707f
+#define MASK_CV_OR_SC_B            0xfe00707f
+#define MASK_CV_OR_SCI_H           0xfc00707f
+#define MASK_CV_OR_SCI_B           0xfc00707f
+#define MASK_CV_XOR_H              0xfe00707f
+#define MASK_CV_XOR_B              0xfe00707f
+#define MASK_CV_XOR_SC_H           0xfe00707f
+#define MASK_CV_XOR_SC_B           0xfe00707f
+#define MASK_CV_XOR_SCI_H          0xfc00707f
+#define MASK_CV_XOR_SCI_B          0xfc00707f
+#define MASK_CV_AND_H              0xfe00707f
+#define MASK_CV_AND_B              0xfe00707f
+#define MASK_CV_AND_SC_H           0xfe00707f
+#define MASK_CV_AND_SC_B           0xfe00707f
+#define MASK_CV_AND_SCI_H          0xfc00707f
+#define MASK_CV_AND_SCI_B          0xfc00707f
+#define MASK_CV_ABS_H              0xfff0707f
+#define MASK_CV_ABS_B              0xfff0707f
+#define MASK_CV_DOTUP_H            0xfe00707f
+#define MASK_CV_DOTUP_B            0xfe00707f
+#define MASK_CV_DOTUP_SC_H         0xfe00707f
+#define MASK_CV_DOTUP_SC_B         0xfe00707f
+#define MASK_CV_DOTUP_SCI_H        0xfc00707f
+#define MASK_CV_DOTUP_SCI_B        0xfc00707f
+#define MASK_CV_DOTUSP_H           0xfe00707f
+#define MASK_CV_DOTUSP_B           0xfe00707f
+#define MASK_CV_DOTUSP_SC_H        0xfe00707f
+#define MASK_CV_DOTUSP_SC_B        0xfe00707f
+#define MASK_CV_DOTUSP_SCI_H       0xfc00707f
+#define MASK_CV_DOTUSP_SCI_B       0xfc00707f
+#define MASK_CV_DOTSP_H            0xfe00707f
+#define MASK_CV_DOTSP_B            0xfe00707f
+#define MASK_CV_DOTSP_SC_H         0xfe00707f
+#define MASK_CV_DOTSP_SC_B         0xfe00707f
+#define MASK_CV_DOTSP_SCI_H        0xfc00707f
+#define MASK_CV_DOTSP_SCI_B        0xfc00707f
+#define MASK_CV_SDOTUP_H           0xfe00707f
+#define MASK_CV_SDOTUP_B           0xfe00707f
+#define MASK_CV_SDOTUP_SC_H        0xfe00707f
+#define MASK_CV_SDOTUP_SC_B        0xfe00707f
+#define MASK_CV_SDOTUP_SCI_H       0xfc00707f
+#define MASK_CV_SDOTUP_SCI_B       0xfc00707f
+#define MASK_CV_SDOTUSP_H          0xfe00707f
+#define MASK_CV_SDOTUSP_B          0xfe00707f
+#define MASK_CV_SDOTUSP_SC_H       0xfe00707f
+#define MASK_CV_SDOTUSP_SC_B       0xfe00707f
+#define MASK_CV_SDOTUSP_SCI_H      0xfc00707f
+#define MASK_CV_SDOTUSP_SCI_B      0xfc00707f
+#define MASK_CV_SDOTSP_H           0xfe00707f
+#define MASK_CV_SDOTSP_B           0xfe00707f
+#define MASK_CV_SDOTSP_SC_H        0xfe00707f
+#define MASK_CV_SDOTSP_SC_B        0xfe00707f
+#define MASK_CV_SDOTSP_SCI_H       0xfc00707f
+#define MASK_CV_SDOTSP_SCI_B       0xfc00707f
+#define MASK_CV_EXTRACT_H          0xfc00707f
+#define MASK_CV_EXTRACT_B          0xfc00707f
+#define MASK_CV_EXTRACTU_H         0xfc00707f
+#define MASK_CV_EXTRACTU_B         0xfc00707f
+#define MASK_CV_INSERT_H           0xfc00707f
+#define MASK_CV_INSERT_B           0xfc00707f
+#define MASK_CV_SHUFFLE_H          0xfe00707f
+#define MASK_CV_SHUFFLE_B          0xfe00707f
+#define MASK_CV_SHUFFLE_SCI_H      0xfc00707f
+#define MASK_CV_SHUFFLEI0_SCI_B    0xfc00707f
+#define MASK_CV_SHUFFLEI1_SCI_B    0xfc00707f
+#define MASK_CV_SHUFFLEI2_SCI_B    0xfc00707f
+#define MASK_CV_SHUFFLEI3_SCI_B    0xfc00707f
+#define MASK_CV_SHUFFLE2_H         0xfe00707f
+#define MASK_CV_SHUFFLE2_B         0xfe00707f
+#define MASK_CV_PACK               0xfe00707f
+#define MASK_CV_PACK_H             0xfe00707f
+#define MASK_CV_PACKHI_B           0xfe00707f
+#define MASK_CV_PACKLO_B           0xfe00707f
+#define MASK_CV_CMPEQ_H            0xfe00707f
+#define MASK_CV_CMPEQ_B            0xfe00707f
+#define MASK_CV_CMPEQ_SC_H         0xfe00707f
+#define MASK_CV_CMPEQ_SC_B         0xfe00707f
+#define MASK_CV_CMPEQ_SCI_H        0xfc00707f
+#define MASK_CV_CMPEQ_SCI_B        0xfc00707f
+#define MASK_CV_CMPNE_H            0xfe00707f
+#define MASK_CV_CMPNE_B            0xfe00707f
+#define MASK_CV_CMPNE_SC_H         0xfe00707f
+#define MASK_CV_CMPNE_SC_B         0xfe00707f
+#define MASK_CV_CMPNE_SCI_H        0xfc00707f
+#define MASK_CV_CMPNE_SCI_B        0xfc00707f
+#define MASK_CV_CMPGT_H            0xfe00707f
+#define MASK_CV_CMPGT_B            0xfe00707f
+#define MASK_CV_CMPGT_SC_H         0xfe00707f
+#define MASK_CV_CMPGT_SC_B         0xfe00707f
+#define MASK_CV_CMPGT_SCI_H        0xfc00707f
+#define MASK_CV_CMPGT_SCI_B        0xfc00707f
+#define MASK_CV_CMPGE_H            0xfe00707f
+#define MASK_CV_CMPGE_B            0xfe00707f
+#define MASK_CV_CMPGE_SC_H         0xfe00707f
+#define MASK_CV_CMPGE_SC_B         0xfe00707f
+#define MASK_CV_CMPGE_SCI_H        0xfc00707f
+#define MASK_CV_CMPGE_SCI_B        0xfc00707f
+#define MASK_CV_CMPLT_H            0xfe00707f
+#define MASK_CV_CMPLT_B            0xfe00707f
+#define MASK_CV_CMPLT_SC_H         0xfe00707f
+#define MASK_CV_CMPLT_SC_B         0xfe00707f
+#define MASK_CV_CMPLT_SCI_H        0xfc00707f
+#define MASK_CV_CMPLT_SCI_B        0xfc00707f
+#define MASK_CV_CMPLE_H            0xfe00707f
+#define MASK_CV_CMPLE_B            0xfe00707f
+#define MASK_CV_CMPLE_SC_H         0xfe00707f
+#define MASK_CV_CMPLE_SC_B         0xfe00707f
+#define MASK_CV_CMPLE_SCI_H        0xfc00707f
+#define MASK_CV_CMPLE_SCI_B        0xfc00707f
+#define MASK_CV_CMPGTU_H           0xfe00707f
+#define MASK_CV_CMPGTU_B           0xfe00707f
+#define MASK_CV_CMPGTU_SC_H        0xfe00707f
+#define MASK_CV_CMPGTU_SC_B        0xfe00707f
+#define MASK_CV_CMPGTU_SCI_H       0xfc00707f
+#define MASK_CV_CMPGTU_SCI_B       0xfc00707f
+#define MASK_CV_CMPGEU_H           0xfe00707f
+#define MASK_CV_CMPGEU_B           0xfe00707f
+#define MASK_CV_CMPGEU_SC_H        0xfe00707f
+#define MASK_CV_CMPGEU_SC_B        0xfe00707f
+#define MASK_CV_CMPGEU_SCI_H       0xfc00707f
+#define MASK_CV_CMPGEU_SC_B        0xfe00707f
+#define MASK_CV_CMPGEU_SCI_H       0xfc00707f
+#define MASK_CV_CMPGEU_SCI_B       0xfc00707f
+#define MASK_CV_CMPLTU_H           0xfe00707f
+#define MASK_CV_CMPLTU_B           0xfe00707f
+#define MASK_CV_CMPLTU_SC_H        0xfe00707f
+#define MASK_CV_CMPLTU_SC_B        0xfe00707f
+#define MASK_CV_CMPLTU_SCI_H       0xfc00707f
+#define MASK_CV_CMPLTU_SCI_B       0xfc00707f
+#define MASK_CV_CMPLEU_H           0xfe00707f
+#define MASK_CV_CMPLEU_B           0xfe00707f
+#define MASK_CV_CMPLEU_SC_H        0xfe00707f
+#define MASK_CV_CMPLEU_SC_B        0xfe00707f
+#define MASK_CV_CMPLEU_SCI_H       0xfc00707f
+#define MASK_CV_CMPLEU_SCI_B       0xfc00707f
+#define MASK_CV_CPLXMUL_R          0xfe00707f
+#define MASK_CV_CPLXMUL_I          0xfe00707f
+#define MASK_CV_CPLXMUL_R_DIV2     0xfe00707f
+#define MASK_CV_CPLXMUL_I_DIV2     0xfe00707f
+#define MASK_CV_CPLXMUL_R_DIV4     0xfe00707f
+#define MASK_CV_CPLXMUL_I_DIV4     0xfe00707f
+#define MASK_CV_CPLXMUL_R_DIV8     0xfe00707f
+#define MASK_CV_CPLXMUL_I_DIV8     0xfe00707f
+#define MASK_CV_CPLXCONJ           0xfff0707f
+#define MASK_CV_SUBROTMJ           0xfe00707f
+#define MASK_CV_SUBROTMJ_DIV2      0xfe00707f
+#define MASK_CV_SUBROTMJ_DIV4      0xfe00707f
+#define MASK_CV_SUBROTMJ_DIV8      0xfe00707f
+#define MASK_CV_ADD_DIV2           0xfe00707f
+#define MASK_CV_ADD_DIV4           0xfe00707f
+#define MASK_CV_ADD_DIV8           0xfe00707f
+#define MASK_CV_SUB_DIV2           0xfe00707f
+#define MASK_CV_SUB_DIV4           0xfe00707f
+#define MASK_CV_SUB_DIV8           0xfe00707f
 /* Vendor-specific (T-Head) XTheadBa instructions.  */
 #define MATCH_TH_ADDSL 0x0000100b
 #define MASK_TH_ADDSL 0xf800707f
diff --git a/include/opcode/riscv.h b/include/opcode/riscv.h
index adea7dbc794..9a5880f4e3e 100644
--- a/include/opcode/riscv.h
+++ b/include/opcode/riscv.h
@@ -55,6 +55,7 @@ static inline unsigned int riscv_insn_length (insn_t insn)
 #define RV_X(x, s, n)  (((x) >> (s)) & ((1 << (n)) - 1))
 #define RV_IMM_SIGN(x) (-(((x) >> 31) & 1))
 #define RV_X_SIGNED(x, s, n) (RV_X(x, s, n) | ((-(RV_X(x, (s + n - 1), 1))) << (n)))
+#define RV_IMM_SIGN_N(x, s, n) (-(((x) >> ((s) + (n) - 1)) & 1))
 
 #define EXTRACT_ITYPE_IMM(x) \
   (RV_X(x, 20, 12) | (RV_IMM_SIGN(x) << 12))
@@ -117,6 +118,12 @@ static inline unsigned int riscv_insn_length (insn_t insn)
   (RV_X(x, 20, 5))
 #define EXTRACT_CV_IS3_UIMM5(x) \
   (RV_X(x, 25, 5))
+#define EXTRACT_CV_BI_IMM5(x) \
+  (RV_X(x, 20, 5) | (RV_IMM_SIGN_N(x, 20, 5) << 5))
+#define EXTRACT_CV_SIMD_IMM6(x) \
+  ((RV_X(x, 25, 1)) | (RV_X(x, 20, 5) << 1) | (RV_IMM_SIGN_N(x, 20, 5) << 5))
+#define EXTRACT_CV_SIMD_UIMM6(x) \
+  ((RV_X(x, 25, 1)) | (RV_X(x, 20, 5) << 1))
 
 #define ENCODE_ITYPE_IMM(x) \
   (RV_X(x, 0, 12) << 20)
@@ -173,6 +180,12 @@ static inline unsigned int riscv_insn_length (insn_t insn)
   (RV_X(x, 0, 5) << 20)
 #define ENCODE_CV_IS3_UIMM5(x) \
   (RV_X(x, 0, 5) << 25)
+#define ENCODE_CV_UIMM5(x) \
+  (RV_X(x, 0, 5) << 20)
+#define ENCODE_CV_SIMD_IMM6(x) \
+  ((RV_X(x, 0, 1) << 25) | (RV_X(x, 1, 5) << 20))
+#define ENCODE_CV_SIMD_UIMM6(x) \
+  ((RV_X(x, 0, 1) << 25) | (RV_X(x, 1, 5) << 20))
 
 #define VALID_ITYPE_IMM(x) (EXTRACT_ITYPE_IMM(ENCODE_ITYPE_IMM(x)) == (x))
 #define VALID_STYPE_IMM(x) (EXTRACT_STYPE_IMM(ENCODE_STYPE_IMM(x)) == (x))
@@ -471,6 +484,7 @@ enum riscv_insn_class
   INSN_CLASS_H,
   INSN_CLASS_XCVMAC,
   INSN_CLASS_XCVALU,
+  INSN_CLASS_XCVSIMD,
   INSN_CLASS_XTHEADBA,
   INSN_CLASS_XTHEADBB,
   INSN_CLASS_XTHEADBS,
diff --git a/opcodes/riscv-dis.c b/opcodes/riscv-dis.c
index 3019b9a5130..e40bce212f3 100644
--- a/opcodes/riscv-dis.c
+++ b/opcodes/riscv-dis.c
@@ -429,6 +429,28 @@ print_insn_args (const char *oparg, insn_t l, bfd_vma pc, disassemble_info *info
 	    print (info->stream, dis_style_immediate, "0");
 	  break;
 
+	/* CORE-V Specific.  */
+	case 'b':
+	  if (oparg[1] == '4')
+	    {
+	      print (info->stream, dis_style_immediate, "%d", ((int) EXTRACT_CV_BI_IMM5 (l)));
+	      ++oparg;
+	      break;
+	    }
+	   else if (oparg[1] == '5')
+	    {
+	      print (info->stream, dis_style_immediate, "%d", ((int) EXTRACT_CV_SIMD_IMM6 (l)));
+	      ++oparg;
+	      break;
+	    }
+	   else if (oparg[1] == '8')
+	    {
+	      print (info->stream, dis_style_immediate, "%d", ((int) EXTRACT_CV_SIMD_UIMM6 (l)));
+	      if (oparg[2] == '1' || oparg[2] == '2' || oparg[2] == '3' || oparg[2] == '4') ++oparg;
+	      ++oparg;
+	      break;
+	    }
+	/* Fall through.  */
 	case 's':
 	  if ((l & MASK_JALR) == MATCH_JALR)
 	    maybe_print_address (pd, rs1, EXTRACT_ITYPE_IMM (l), 0);
diff --git a/opcodes/riscv-opc.c b/opcodes/riscv-opc.c
index fdd05ac75dc..d7f88c86567 100644
--- a/opcodes/riscv-opc.c
+++ b/opcodes/riscv-opc.c
@@ -2112,6 +2112,228 @@ const struct riscv_opcode riscv_opcodes[] =
 {"cv.subrnr",  0, INSN_CLASS_XCVALU, "d,s,t",     MATCH_CV_SUBRNR,  MASK_CV_SUBRNR, match_opcode, 0},
 {"cv.suburnr", 0, INSN_CLASS_XCVALU, "d,s,t",     MATCH_CV_SUBURNR, MASK_CV_SUBURNR, match_opcode, 0},
 
+/* Vendor-specific (CORE-V) Xcvsimd Instructions */
+{"cv.add.h",              0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_ADD_H, MASK_CV_ADD_H, match_opcode, 0},
+{"cv.add.b",              0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_ADD_B, MASK_CV_ADD_B, match_opcode, 0},
+{"cv.add.sc.h",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_ADD_SC_H, MASK_CV_ADD_SC_H, match_opcode, 0},
+{"cv.add.sc.b",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_ADD_SC_B, MASK_CV_ADD_SC_B, match_opcode, 0},
+{"cv.add.sci.h",          0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_ADD_SCI_H, MASK_CV_ADD_SCI_H, match_opcode, 0},
+{"cv.add.sci.b",          0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_ADD_SCI_B, MASK_CV_ADD_SCI_B, match_opcode, 0},
+{"cv.sub.h",              0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SUB_H, MASK_CV_SUB_H, match_opcode, 0},
+{"cv.sub.b",              0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SUB_B, MASK_CV_SUB_B, match_opcode, 0},
+{"cv.sub.sc.h",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SUB_SC_H, MASK_CV_SUB_SC_H, match_opcode, 0},
+{"cv.sub.sc.b",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SUB_SC_B, MASK_CV_SUB_SC_B, match_opcode, 0},
+{"cv.sub.sci.h",          0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_SUB_SCI_H, MASK_CV_SUB_SCI_H, match_opcode, 0},
+{"cv.sub.sci.b",          0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_SUB_SCI_B, MASK_CV_SUB_SCI_B, match_opcode, 0},
+{"cv.avg.h",              0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_AVG_H, MASK_CV_AVG_H, match_opcode, 0},
+{"cv.avg.b",              0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_AVG_B, MASK_CV_AVG_B, match_opcode, 0},
+{"cv.avg.sc.h",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_AVG_SC_H, MASK_CV_AVG_SC_H, match_opcode, 0},
+{"cv.avg.sc.b",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_AVG_SC_B, MASK_CV_AVG_SC_B, match_opcode, 0},
+{"cv.avg.sci.h",          0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_AVG_SCI_H, MASK_CV_AVG_SCI_H, match_opcode, 0},
+{"cv.avg.sci.b",          0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_AVG_SCI_B, MASK_CV_AVG_SCI_B, match_opcode, 0},
+{"cv.avgu.h",             0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_AVGU_H, MASK_CV_AVGU_H, match_opcode, 0},
+{"cv.avgu.b",             0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_AVGU_B, MASK_CV_AVGU_B, match_opcode, 0},
+{"cv.avgu.sc.h",          0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_AVGU_SC_H, MASK_CV_AVGU_SC_H, match_opcode, 0},
+{"cv.avgu.sc.b",          0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_AVGU_SC_B, MASK_CV_AVGU_SC_B, match_opcode, 0},
+{"cv.avgu.sci.h",         0, INSN_CLASS_XCVSIMD, "d,s,b8", MATCH_CV_AVGU_SCI_H, MASK_CV_AVGU_SCI_H, match_opcode, 0},
+{"cv.avgu.sci.b",         0, INSN_CLASS_XCVSIMD, "d,s,b8", MATCH_CV_AVGU_SCI_B, MASK_CV_AVGU_SCI_B, match_opcode, 0},
+{"cv.min.h",              0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_MIN_H, MASK_CV_MIN_H, match_opcode, 0},
+{"cv.min.b",              0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_MIN_B, MASK_CV_MIN_B, match_opcode, 0},
+{"cv.min.sc.h",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_MIN_SC_H, MASK_CV_MIN_SC_H, match_opcode, 0},
+{"cv.min.sc.b",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_MIN_SC_B, MASK_CV_MIN_SC_B, match_opcode, 0},
+{"cv.min.sci.h",          0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_MIN_SCI_H, MASK_CV_MIN_SCI_H, match_opcode, 0},
+{"cv.min.sci.b",          0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_MIN_SCI_B, MASK_CV_MIN_SCI_B, match_opcode, 0},
+{"cv.minu.h",             0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_MINU_H, MASK_CV_MINU_H, match_opcode, 0},
+{"cv.minu.b",             0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_MINU_B, MASK_CV_MINU_B, match_opcode, 0},
+{"cv.minu.sc.h",          0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_MINU_SC_H, MASK_CV_MINU_SC_H, match_opcode, 0},
+{"cv.minu.sc.b",          0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_MINU_SC_B, MASK_CV_MINU_SC_B, match_opcode, 0},
+{"cv.minu.sci.h",         0, INSN_CLASS_XCVSIMD, "d,s,b8", MATCH_CV_MINU_SCI_H, MASK_CV_MINU_SCI_H, match_opcode, 0},
+{"cv.minu.sci.b",         0, INSN_CLASS_XCVSIMD, "d,s,b8", MATCH_CV_MINU_SCI_B, MASK_CV_MINU_SCI_B, match_opcode, 0},
+{"cv.max.h",              0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_MAX_H, MASK_CV_MAX_H, match_opcode, 0},
+{"cv.max.b",              0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_MAX_B, MASK_CV_MAX_B, match_opcode, 0},
+{"cv.max.sc.h",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_MAX_SC_H, MASK_CV_MAX_SC_H, match_opcode, 0},
+{"cv.max.sc.b",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_MAX_SC_B, MASK_CV_MAX_SC_B, match_opcode, 0},
+{"cv.max.sci.h",          0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_MAX_SCI_H, MASK_CV_MAX_SCI_H, match_opcode, 0},
+{"cv.max.sci.b",          0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_MAX_SCI_B, MASK_CV_MAX_SCI_B, match_opcode, 0},
+{"cv.maxu.h",             0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_MAXU_H, MASK_CV_MAXU_H, match_opcode, 0},
+{"cv.maxu.b",             0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_MAXU_B, MASK_CV_MAXU_B, match_opcode, 0},
+{"cv.maxu.sc.h",          0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_MAXU_SC_H, MASK_CV_MAXU_SC_H, match_opcode, 0},
+{"cv.maxu.sc.b",          0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_MAXU_SC_B, MASK_CV_MAXU_SC_B, match_opcode, 0},
+{"cv.maxu.sci.h",         0, INSN_CLASS_XCVSIMD, "d,s,b8", MATCH_CV_MAXU_SCI_H, MASK_CV_MAXU_SCI_H, match_opcode, 0},
+{"cv.maxu.sci.b",         0, INSN_CLASS_XCVSIMD, "d,s,b8", MATCH_CV_MAXU_SCI_B, MASK_CV_MAXU_SCI_B, match_opcode, 0},
+{"cv.srl.h",              0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SRL_H, MASK_CV_SRL_H, match_opcode, 0},
+{"cv.srl.b",              0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SRL_B, MASK_CV_SRL_B, match_opcode, 0},
+{"cv.srl.sc.h",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SRL_SC_H, MASK_CV_SRL_SC_H, match_opcode, 0},
+{"cv.srl.sc.b",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SRL_SC_B, MASK_CV_SRL_SC_B, match_opcode, 0},
+{"cv.srl.sci.h",          0, INSN_CLASS_XCVSIMD, "d,s,b84", MATCH_CV_SRL_SCI_H, MASK_CV_SRL_SCI_H, match_opcode, 0},
+{"cv.srl.sci.b",          0, INSN_CLASS_XCVSIMD, "d,s,b83", MATCH_CV_SRL_SCI_B, MASK_CV_SRL_SCI_B, match_opcode, 0},
+{"cv.sra.h",              0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SRA_H, MASK_CV_SRA_H, match_opcode, 0},
+{"cv.sra.b",              0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SRA_B, MASK_CV_SRA_B, match_opcode, 0},
+{"cv.sra.sc.h",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SRA_SC_H, MASK_CV_SRA_SC_H, match_opcode, 0},
+{"cv.sra.sc.b",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SRA_SC_B, MASK_CV_SRA_SC_B, match_opcode, 0},
+{"cv.sra.sci.h",          0, INSN_CLASS_XCVSIMD, "d,s,b84", MATCH_CV_SRA_SCI_H, MASK_CV_SRA_SCI_H, match_opcode, 0},
+{"cv.sra.sci.b",          0, INSN_CLASS_XCVSIMD, "d,s,b83", MATCH_CV_SRA_SCI_B, MASK_CV_SRA_SCI_B, match_opcode, 0},
+{"cv.sll.h",              0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SLL_H, MASK_CV_SLL_H, match_opcode, 0},
+{"cv.sll.b",              0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SLL_B, MASK_CV_SLL_B, match_opcode, 0},
+{"cv.sll.sc.h",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SLL_SC_H, MASK_CV_SLL_SC_H, match_opcode, 0},
+{"cv.sll.sc.b",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SLL_SC_B, MASK_CV_SLL_SC_B, match_opcode, 0},
+{"cv.sll.sci.h",          0, INSN_CLASS_XCVSIMD, "d,s,b84", MATCH_CV_SLL_SCI_H, MASK_CV_SLL_SCI_H, match_opcode, 0},
+{"cv.sll.sci.b",          0, INSN_CLASS_XCVSIMD, "d,s,b83", MATCH_CV_SLL_SCI_B, MASK_CV_SLL_SCI_B, match_opcode, 0},
+{"cv.or.h",               0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_OR_H, MASK_CV_OR_H, match_opcode, 0},
+{"cv.or.b",               0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_OR_B, MASK_CV_OR_B, match_opcode, 0},
+{"cv.or.sc.h",            0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_OR_SC_H, MASK_CV_OR_SC_H, match_opcode, 0},
+{"cv.or.sc.b",            0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_OR_SC_B, MASK_CV_OR_SC_B, match_opcode, 0},
+{"cv.or.sci.h",           0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_OR_SCI_H, MASK_CV_OR_SCI_H, match_opcode, 0},
+{"cv.or.sci.b",           0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_OR_SCI_B, MASK_CV_OR_SCI_B, match_opcode, 0},
+{"cv.xor.h",              0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_XOR_H, MASK_CV_XOR_H, match_opcode, 0},
+{"cv.xor.b",              0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_XOR_B, MASK_CV_XOR_B, match_opcode, 0},
+{"cv.xor.sc.h",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_XOR_SC_H, MASK_CV_XOR_SC_H, match_opcode, 0},
+{"cv.xor.sc.b",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_XOR_SC_B, MASK_CV_XOR_SC_B, match_opcode, 0},
+{"cv.xor.sci.h",          0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_XOR_SCI_H, MASK_CV_XOR_SCI_H, match_opcode, 0},
+{"cv.xor.sci.b",          0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_XOR_SCI_B, MASK_CV_XOR_SCI_B, match_opcode, 0},
+{"cv.and.h",              0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_AND_H, MASK_CV_AND_H, match_opcode, 0},
+{"cv.and.b",              0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_AND_B, MASK_CV_AND_B, match_opcode, 0},
+{"cv.and.sc.h",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_AND_SC_H, MASK_CV_AND_SC_H, match_opcode, 0},
+{"cv.and.sc.b",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_AND_SC_B, MASK_CV_AND_SC_B, match_opcode, 0},
+{"cv.and.sci.h",          0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_AND_SCI_H, MASK_CV_AND_SCI_H, match_opcode, 0},
+{"cv.and.sci.b",          0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_AND_SCI_B, MASK_CV_AND_SCI_B, match_opcode, 0},
+{"cv.abs.h",              0, INSN_CLASS_XCVSIMD, "d,s",   MATCH_CV_ABS_H, MASK_CV_ABS_H, match_opcode, 0},
+{"cv.abs.b",              0, INSN_CLASS_XCVSIMD, "d,s",   MATCH_CV_ABS_B, MASK_CV_ABS_B, match_opcode, 0},
+{"cv.dotup.h",            0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_DOTUP_H, MASK_CV_DOTUP_H, match_opcode, 0},
+{"cv.dotup.b",            0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_DOTUP_B, MASK_CV_DOTUP_B, match_opcode, 0},
+{"cv.dotup.sc.h",         0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_DOTUP_SC_H, MASK_CV_DOTUP_SC_H, match_opcode, 0},
+{"cv.dotup.sc.b",         0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_DOTUP_SC_B, MASK_CV_DOTUP_SC_B, match_opcode, 0},
+{"cv.dotup.sci.h",        0, INSN_CLASS_XCVSIMD, "d,s,b8", MATCH_CV_DOTUP_SCI_H, MASK_CV_DOTUP_SCI_H, match_opcode, 0},
+{"cv.dotup.sci.b",        0, INSN_CLASS_XCVSIMD, "d,s,b8", MATCH_CV_DOTUP_SCI_B, MASK_CV_DOTUP_SCI_B, match_opcode, 0},
+{"cv.dotusp.h",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_DOTUSP_H, MASK_CV_DOTUSP_H, match_opcode, 0},
+{"cv.dotusp.b",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_DOTUSP_B, MASK_CV_DOTUSP_B, match_opcode, 0},
+{"cv.dotusp.sc.h",        0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_DOTUSP_SC_H, MASK_CV_DOTUSP_SC_H, match_opcode, 0},
+{"cv.dotusp.sc.b",        0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_DOTUSP_SC_B, MASK_CV_DOTUSP_SC_B, match_opcode, 0},
+{"cv.dotusp.sci.h",       0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_DOTUSP_SCI_H, MASK_CV_DOTUSP_SCI_H, match_opcode, 0},
+{"cv.dotusp.sci.b",       0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_DOTUSP_SCI_B, MASK_CV_DOTUSP_SCI_B, match_opcode, 0},
+{"cv.dotsp.h",            0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_DOTSP_H, MASK_CV_DOTSP_H, match_opcode, 0},
+{"cv.dotsp.b",            0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_DOTSP_B, MASK_CV_DOTSP_B, match_opcode, 0},
+{"cv.dotsp.sc.h",         0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_DOTSP_SC_H, MASK_CV_DOTSP_SC_H, match_opcode, 0},
+{"cv.dotsp.sc.b",         0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_DOTSP_SC_B, MASK_CV_DOTSP_SC_B, match_opcode, 0},
+{"cv.dotsp.sci.h",        0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_DOTSP_SCI_H, MASK_CV_DOTSP_SCI_H, match_opcode, 0},
+{"cv.dotsp.sci.b",        0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_DOTSP_SCI_B, MASK_CV_DOTSP_SCI_B, match_opcode, 0},
+{"cv.sdotup.h",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SDOTUP_H, MASK_CV_SDOTUP_H, match_opcode, 0},
+{"cv.sdotup.b",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SDOTUP_B, MASK_CV_SDOTUP_B, match_opcode, 0},
+{"cv.sdotup.sc.h",        0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SDOTUP_SC_H, MASK_CV_SDOTUP_SC_H, match_opcode, 0},
+{"cv.sdotup.sc.b",        0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SDOTUP_SC_B, MASK_CV_SDOTUP_SC_B, match_opcode, 0},
+{"cv.sdotup.sci.h",       0, INSN_CLASS_XCVSIMD, "d,s,b8", MATCH_CV_SDOTUP_SCI_H, MASK_CV_SDOTUP_SCI_H, match_opcode, 0},
+{"cv.sdotup.sci.b",       0, INSN_CLASS_XCVSIMD, "d,s,b8", MATCH_CV_SDOTUP_SCI_B, MASK_CV_SDOTUP_SCI_B, match_opcode, 0},
+{"cv.sdotusp.h",          0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SDOTUSP_H, MASK_CV_SDOTUSP_H, match_opcode, 0},
+{"cv.sdotusp.b",          0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SDOTUSP_B, MASK_CV_SDOTUSP_B, match_opcode, 0},
+{"cv.sdotusp.sc.h",       0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SDOTUSP_SC_H, MASK_CV_SDOTUSP_SC_H, match_opcode, 0},
+{"cv.sdotusp.sc.b",       0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SDOTUSP_SC_B, MASK_CV_SDOTUSP_SC_B, match_opcode, 0},
+{"cv.sdotusp.sci.h",      0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_SDOTUSP_SCI_H, MASK_CV_SDOTUSP_SCI_H, match_opcode, 0},
+{"cv.sdotusp.sci.b",      0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_SDOTUSP_SCI_B, MASK_CV_SDOTUSP_SCI_B, match_opcode, 0},
+{"cv.sdotsp.h",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SDOTSP_H, MASK_CV_SDOTSP_H, match_opcode, 0},
+{"cv.sdotsp.b",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SDOTSP_B, MASK_CV_SDOTSP_B, match_opcode, 0},
+{"cv.sdotsp.sc.h",        0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SDOTSP_SC_H, MASK_CV_SDOTSP_SC_H, match_opcode, 0},
+{"cv.sdotsp.sc.b",        0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SDOTSP_SC_B, MASK_CV_SDOTSP_SC_B, match_opcode, 0},
+{"cv.sdotsp.sci.h",       0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_SDOTSP_SCI_H, MASK_CV_SDOTSP_SCI_H, match_opcode, 0},
+{"cv.sdotsp.sci.b",       0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_SDOTSP_SCI_B, MASK_CV_SDOTSP_SCI_B, match_opcode, 0},
+{"cv.extract.h",          0, INSN_CLASS_XCVSIMD, "d,s,b81", MATCH_CV_EXTRACT_H, MASK_CV_EXTRACT_H, match_opcode, 0},
+{"cv.extract.b",          0, INSN_CLASS_XCVSIMD, "d,s,b82", MATCH_CV_EXTRACT_B, MASK_CV_EXTRACT_B, match_opcode, 0},
+{"cv.extractu.h",         0, INSN_CLASS_XCVSIMD, "d,s,b81", MATCH_CV_EXTRACTU_H, MASK_CV_EXTRACTU_H, match_opcode, 0},
+{"cv.extractu.b",         0, INSN_CLASS_XCVSIMD, "d,s,b82", MATCH_CV_EXTRACTU_B, MASK_CV_EXTRACTU_B, match_opcode, 0},
+{"cv.insert.h",           0, INSN_CLASS_XCVSIMD, "d,s,b81", MATCH_CV_INSERT_H, MASK_CV_INSERT_H, match_opcode, 0},
+{"cv.insert.b",           0, INSN_CLASS_XCVSIMD, "d,s,b82", MATCH_CV_INSERT_B, MASK_CV_INSERT_B, match_opcode, 0},
+{"cv.shuffle.h",          0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SHUFFLE_H, MASK_CV_SHUFFLE_H, match_opcode, 0},
+{"cv.shuffle.b",          0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SHUFFLE_B, MASK_CV_SHUFFLE_B, match_opcode, 0},
+{"cv.shuffle.sci.h",      0, INSN_CLASS_XCVSIMD, "d,s,b8", MATCH_CV_SHUFFLE_SCI_H, MASK_CV_SHUFFLE_SCI_H, match_opcode, 0},
+{"cv.shufflei0.sci.b",    0, INSN_CLASS_XCVSIMD, "d,s,b8", MATCH_CV_SHUFFLEI0_SCI_B, MASK_CV_SHUFFLEI0_SCI_B, match_opcode, 0},
+{"cv.shufflei1.sci.b",    0, INSN_CLASS_XCVSIMD, "d,s,b8", MATCH_CV_SHUFFLEI1_SCI_B, MASK_CV_SHUFFLEI1_SCI_B, match_opcode, 0},
+{"cv.shufflei2.sci.b",    0, INSN_CLASS_XCVSIMD, "d,s,b8", MATCH_CV_SHUFFLEI2_SCI_B, MASK_CV_SHUFFLEI2_SCI_B, match_opcode, 0},
+{"cv.shufflei3.sci.b",    0, INSN_CLASS_XCVSIMD, "d,s,b8", MATCH_CV_SHUFFLEI3_SCI_B, MASK_CV_SHUFFLEI3_SCI_B, match_opcode, 0},
+{"cv.shuffle2.h",         0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SHUFFLE2_H, MASK_CV_SHUFFLE2_H, match_opcode, 0},
+{"cv.shuffle2.b",         0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SHUFFLE2_B, MASK_CV_SHUFFLE2_B, match_opcode, 0},
+{"cv.pack",               0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_PACK, MASK_CV_PACK, match_opcode, 0},
+{"cv.pack.h",             0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_PACK_H, MASK_CV_PACK_H, match_opcode, 0},
+{"cv.packhi.b",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_PACKHI_B, MASK_CV_PACKHI_B, match_opcode, 0},
+{"cv.packlo.b",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_PACKLO_B, MASK_CV_PACKLO_B, match_opcode, 0},
+{"cv.cmpeq.h",            0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPEQ_H, MASK_CV_CMPEQ_H, match_opcode, 0},
+{"cv.cmpeq.b",            0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPEQ_B, MASK_CV_CMPEQ_B, match_opcode, 0},
+{"cv.cmpeq.sc.h",         0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPEQ_SC_H, MASK_CV_CMPEQ_SC_H, match_opcode, 0},
+{"cv.cmpeq.sc.b",         0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPEQ_SC_B, MASK_CV_CMPEQ_SC_B, match_opcode, 0},
+{"cv.cmpeq.sci.h",        0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_CMPEQ_SCI_H, MASK_CV_CMPEQ_SCI_H, match_opcode, 0},
+{"cv.cmpeq.sci.b",        0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_CMPEQ_SCI_B, MASK_CV_CMPEQ_SCI_B, match_opcode, 0},
+{"cv.cmpne.h",            0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPNE_H, MASK_CV_CMPNE_H, match_opcode, 0},
+{"cv.cmpne.b",            0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPNE_B, MASK_CV_CMPNE_B, match_opcode, 0},
+{"cv.cmpne.sc.h",         0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPNE_SC_H, MASK_CV_CMPNE_SC_H, match_opcode, 0},
+{"cv.cmpne.sc.b",         0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPNE_SC_B, MASK_CV_CMPNE_SC_B, match_opcode, 0},
+{"cv.cmpne.sci.h",        0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_CMPNE_SCI_H, MASK_CV_CMPNE_SCI_H, match_opcode, 0},
+{"cv.cmpne.sci.b",        0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_CMPNE_SCI_B, MASK_CV_CMPNE_SCI_B, match_opcode, 0},
+{"cv.cmpgt.h",            0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPGT_H, MASK_CV_CMPGT_H, match_opcode, 0},
+{"cv.cmpgt.b",            0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPGT_B, MASK_CV_CMPGT_B, match_opcode, 0},
+{"cv.cmpgt.sc.h",         0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPGT_SC_H, MASK_CV_CMPGT_SC_H, match_opcode, 0},
+{"cv.cmpgt.sc.b",         0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPGT_SC_B, MASK_CV_CMPGT_SC_B, match_opcode, 0},
+{"cv.cmpgt.sci.h",        0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_CMPGT_SCI_H, MASK_CV_CMPGT_SCI_H, match_opcode, 0},
+{"cv.cmpgt.sci.b",        0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_CMPGT_SCI_B, MASK_CV_CMPGT_SCI_B, match_opcode, 0},
+{"cv.cmpge.h",            0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPGE_H, MASK_CV_CMPGE_H, match_opcode, 0},
+{"cv.cmpge.b",            0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPGE_B, MASK_CV_CMPGE_B, match_opcode, 0},
+{"cv.cmpge.sc.h",         0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPGE_SC_H, MASK_CV_CMPGE_SC_H, match_opcode, 0},
+{"cv.cmpge.sc.b",         0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPGE_SC_B, MASK_CV_CMPGE_SC_B, match_opcode, 0},
+{"cv.cmpge.sci.h",        0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_CMPGE_SCI_H, MASK_CV_CMPGE_SCI_H, match_opcode, 0},
+{"cv.cmpge.sci.b",        0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_CMPGE_SCI_B, MASK_CV_CMPGE_SCI_B, match_opcode, 0},
+{"cv.cmplt.h",            0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPLT_H, MASK_CV_CMPLT_H, match_opcode, 0},
+{"cv.cmplt.b",            0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPLT_B, MASK_CV_CMPLT_B, match_opcode, 0},
+{"cv.cmplt.sc.h",         0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPLT_SC_H, MASK_CV_CMPLT_SC_H, match_opcode, 0},
+{"cv.cmplt.sc.b",         0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPLT_SC_B, MASK_CV_CMPLT_SC_B, match_opcode, 0},
+{"cv.cmplt.sci.h",        0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_CMPLT_SCI_H, MASK_CV_CMPLT_SCI_H, match_opcode, 0},
+{"cv.cmplt.sci.b",        0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_CMPLT_SCI_B, MASK_CV_CMPLT_SCI_B, match_opcode, 0},
+{"cv.cmple.h",            0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPLE_H, MASK_CV_CMPLE_H, match_opcode, 0},
+{"cv.cmple.b",            0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPLE_B, MASK_CV_CMPLE_B, match_opcode, 0},
+{"cv.cmple.sc.h",         0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPLE_SC_H, MASK_CV_CMPLE_SC_H, match_opcode, 0},
+{"cv.cmple.sc.b",         0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPLE_SC_B, MASK_CV_CMPLE_SC_B, match_opcode, 0},
+{"cv.cmple.sci.h",        0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_CMPLE_SCI_H, MASK_CV_CMPLE_SCI_H, match_opcode, 0},
+{"cv.cmple.sci.b",        0, INSN_CLASS_XCVSIMD, "d,s,b5", MATCH_CV_CMPLE_SCI_B, MASK_CV_CMPLE_SCI_B, match_opcode, 0},
+{"cv.cmpgtu.h",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPGTU_H, MASK_CV_CMPGTU_H, match_opcode, 0},
+{"cv.cmpgtu.b",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPGTU_B, MASK_CV_CMPGTU_B, match_opcode, 0},
+{"cv.cmpgtu.sc.h",        0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPGTU_SC_H, MASK_CV_CMPGTU_SC_H, match_opcode, 0},
+{"cv.cmpgtu.sc.b",        0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPGTU_SC_B, MASK_CV_CMPGTU_SC_B, match_opcode, 0},
+{"cv.cmpgtu.sci.h",       0, INSN_CLASS_XCVSIMD, "d,s,b8", MATCH_CV_CMPGTU_SCI_H, MASK_CV_CMPGTU_SCI_H, match_opcode, 0},
+{"cv.cmpgtu.sci.b",       0, INSN_CLASS_XCVSIMD, "d,s,b8", MATCH_CV_CMPGTU_SCI_B, MASK_CV_CMPGTU_SCI_B, match_opcode, 0},
+{"cv.cmpgeu.h",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPGEU_H, MASK_CV_CMPGEU_H, match_opcode, 0},
+{"cv.cmpgeu.b",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPGEU_B, MASK_CV_CMPGEU_B, match_opcode, 0},
+{"cv.cmpgeu.sc.h",        0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPGEU_SC_H, MASK_CV_CMPGEU_SC_H, match_opcode, 0},
+{"cv.cmpgeu.sc.b",        0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPGEU_SC_B, MASK_CV_CMPGEU_SC_B, match_opcode, 0},
+{"cv.cmpgeu.sci.h",       0, INSN_CLASS_XCVSIMD, "d,s,b8", MATCH_CV_CMPGEU_SCI_H, MASK_CV_CMPGEU_SCI_H, match_opcode, 0},
+{"cv.cmpgeu.sci.b",       0, INSN_CLASS_XCVSIMD, "d,s,b8", MATCH_CV_CMPGEU_SCI_B, MASK_CV_CMPGEU_SCI_B, match_opcode, 0},
+{"cv.cmpltu.h",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPLTU_H, MASK_CV_CMPLTU_H, match_opcode, 0},
+{"cv.cmpltu.b",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPLTU_B, MASK_CV_CMPLTU_B, match_opcode, 0},
+{"cv.cmpltu.sc.h",        0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPLTU_SC_H, MASK_CV_CMPLTU_SC_H, match_opcode, 0},
+{"cv.cmpltu.sc.b",        0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPLTU_SC_B, MASK_CV_CMPLTU_SC_B, match_opcode, 0},
+{"cv.cmpltu.sci.h",       0, INSN_CLASS_XCVSIMD, "d,s,b8", MATCH_CV_CMPLTU_SCI_H, MASK_CV_CMPLTU_SCI_H, match_opcode, 0},
+{"cv.cmpltu.sci.b",       0, INSN_CLASS_XCVSIMD, "d,s,b8", MATCH_CV_CMPLTU_SCI_B, MASK_CV_CMPLTU_SCI_B, match_opcode, 0},
+{"cv.cmpleu.h",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPLEU_H, MASK_CV_CMPLEU_H, match_opcode, 0},
+{"cv.cmpleu.b",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPLEU_B, MASK_CV_CMPLEU_B, match_opcode, 0},
+{"cv.cmpleu.sc.h",        0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPLEU_SC_H, MASK_CV_CMPLEU_SC_H, match_opcode, 0},
+{"cv.cmpleu.sc.b",        0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CMPLEU_SC_B, MASK_CV_CMPLEU_SC_B, match_opcode, 0},
+{"cv.cmpleu.sci.h",       0, INSN_CLASS_XCVSIMD, "d,s,b8", MATCH_CV_CMPLEU_SCI_H, MASK_CV_CMPLEU_SCI_H, match_opcode, 0},
+{"cv.cmpleu.sci.b",       0, INSN_CLASS_XCVSIMD, "d,s,b8", MATCH_CV_CMPLEU_SCI_B, MASK_CV_CMPLEU_SCI_B, match_opcode, 0},
+{"cv.cplxmul.r",          0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CPLXMUL_R, MASK_CV_CPLXMUL_R, match_opcode, 0},
+{"cv.cplxmul.i",          0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CPLXMUL_I, MASK_CV_CPLXMUL_I, match_opcode, 0},
+{"cv.cplxmul.r.div2",     0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CPLXMUL_R_DIV2, MASK_CV_CPLXMUL_R_DIV2, match_opcode, 0},
+{"cv.cplxmul.i.div2",     0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CPLXMUL_I_DIV2, MASK_CV_CPLXMUL_I_DIV2, match_opcode, 0},
+{"cv.cplxmul.r.div4",     0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CPLXMUL_R_DIV4, MASK_CV_CPLXMUL_R_DIV4, match_opcode, 0},
+{"cv.cplxmul.i.div4",     0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CPLXMUL_I_DIV4, MASK_CV_CPLXMUL_I_DIV4, match_opcode, 0},
+{"cv.cplxmul.r.div8",     0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CPLXMUL_R_DIV8, MASK_CV_CPLXMUL_R_DIV8, match_opcode, 0},
+{"cv.cplxmul.i.div8",     0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_CPLXMUL_I_DIV8, MASK_CV_CPLXMUL_I_DIV8, match_opcode, 0},
+{"cv.cplxconj",           0, INSN_CLASS_XCVSIMD, "d,s",   MATCH_CV_CPLXCONJ, MASK_CV_CPLXCONJ, match_opcode, 0},
+{"cv.subrotmj",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SUBROTMJ, MASK_CV_SUBROTMJ, match_opcode, 0},
+{"cv.subrotmj.div2",      0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SUBROTMJ_DIV2, MASK_CV_SUBROTMJ_DIV2, match_opcode, 0},
+{"cv.subrotmj.div4",      0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SUBROTMJ_DIV4, MASK_CV_SUBROTMJ_DIV4, match_opcode, 0},
+{"cv.subrotmj.div8",      0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SUBROTMJ_DIV8, MASK_CV_SUBROTMJ_DIV8, match_opcode, 0},
+{"cv.add.div2",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_ADD_DIV2, MASK_CV_ADD_DIV2, match_opcode, 0},
+{"cv.add.div4",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_ADD_DIV4, MASK_CV_ADD_DIV4, match_opcode, 0},
+{"cv.add.div8",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_ADD_DIV8, MASK_CV_ADD_DIV8, match_opcode, 0},
+{"cv.sub.div2",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SUB_DIV2, MASK_CV_SUB_DIV2, match_opcode, 0},
+{"cv.sub.div4",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SUB_DIV4, MASK_CV_SUB_DIV4, match_opcode, 0},
+{"cv.sub.div8",           0, INSN_CLASS_XCVSIMD, "d,s,t", MATCH_CV_SUB_DIV8, MASK_CV_SUB_DIV8, match_opcode, 0},
+
 /* Vendor-specific (T-Head) XTheadBa instructions.  */
 {"th.addsl",    0, INSN_CLASS_XTHEADBA,    "d,s,t,Xtu2@25",   MATCH_TH_ADDSL,    MASK_TH_ADDSL,    match_opcode, 0},
 
-- 
2.34.1


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-02-08 22:15 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-02-08 22:15 [PATCH 0/1] RISC-V: Support CORE-V XCVSIMD extension mary.bennett682
2024-02-08 22:15 ` [PATCH 1/1] RISC-V: Add support for XCVsimd extension in CV32E40Pv2 mary.bennett682

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).