* [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 +
| 3 +
| 5 +
| 7 +
| 18 +
| 11 +
| 3 +
| 5 +
| 7 +
| 18 +
| 11 +
| 3 +
| 5 +
| 7 +
| 18 +
| 11 +
| 3 +
| 5 +
| 7 +
| 18 +
| 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
--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
--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
--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
--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
--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
--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
--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
--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
--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
--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
--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
--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
--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
--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
--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
--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
--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
--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
--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
--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