new file mode 100644
@@ -0,0 +1,3 @@
+#name: Test of illegal SVE2.1 orqv instruction.
+#as: -march=armv9.4-a
+#error_output: sve2p1-5-invalid.l
new file mode 100644
@@ -0,0 +1,27 @@
+.*: Assembler messages:
+.*: Error: operand mismatch -- `orqv v0.8h,p0,z0.b'
+.*: Info: did you mean this\?
+.*: Info: orqv v0.16b, p0, z0.b
+.*: Info: other valid variant\(s\):
+.*: Info: orqv v0.8h, p0, z0.h
+.*: Info: orqv v0.4s, p0, z0.s
+.*: Info: orqv v0.2d, p0, z0.d
+.*: Error: p0-p7 expected at operand 2 -- `orqv v31.16b,p8,z0.b'
+.*: Error: operand mismatch -- `orqv v0.2d,p7,z0.b'
+.*: Info: did you mean this\?
+.*: Info: orqv v0.16b, p7, z0.b
+.*: Info: other valid variant\(s\):
+.*: Info: orqv v0.8h, p7, z0.h
+.*: Info: orqv v0.4s, p7, z0.s
+.*: Info: orqv v0.2d, p7, z0.d
+.*: Error: bad vector arrangement type at operand 1 -- `orqv v0.2b,p7,z0.b'
+.*: Error: indexed vector register expected at operand 1 -- `orqv v0.b,p0,z0.16b'
+.*: Error: unexpected character `8' in element size at operand 3 -- `orqv v0.4h,p0,z0.8h'
+.*: Error: unexpected character `4' in element size at operand 3 -- `orqv v0.4s,p8/m,z0.4s'
+.*: Error: operand mismatch -- `orqv v0.2d,p0/z,z0.d'
+.*: Info: did you mean this\?
+.*: Info: orqv v0.2d, p0, z0.d
+.*: Info: other valid variant\(s\):
+.*: Info: orqv v0.16b, p0, z0.b
+.*: Info: orqv v0.8h, p0, z0.h
+.*: Info: orqv v0.4s, p0, z0.s
new file mode 100644
@@ -0,0 +1,8 @@
+orqv v0.8h, p0, z0.b
+orqv v31.16b, p8, z0.b
+orqv v0.2d, p7, z0.b
+orqv v0.2b, p7, z0.b
+orqv v0.b, p0, z0.16b
+orqv v0.4h, p0, z0.8h
+orqv v0.4s, p8/m, z0.4s
+orqv v0.2d, p0/z, z0.d
new file mode 100644
@@ -0,0 +1,18 @@
+#name: Test of SVE2.1 orqv instruction.
+#as: -march=armv9.4-a
+#objdump: -dr
+
+[^:]+: file format .*
+
+
+[^:]+:
+
+[^:]+:
+.*: 041c2000 orqv v0.16b, p0, z0.b
+.*: 041c201f orqv v31.16b, p0, z0.b
+.*: 04dc2000 orqv v0.2d, p0, z0.d
+.*: 041c3c00 orqv v0.16b, p7, z0.b
+.*: 041c23e0 orqv v0.16b, p0, z31.b
+.*: 04dc3fff orqv v31.2d, p7, z31.d
+.*: 045c35ef orqv v15.8h, p5, z15.h
+.*: 049c2e8a orqv v10.4s, p3, z20.s
new file mode 100644
@@ -0,0 +1,8 @@
+orqv v0.16b, p0, z0.b
+orqv v31.16b, p0, z0.b
+orqv v0.2d, p0, z0.d
+orqv v0.16b, p7, z0.b
+orqv v0.16b, p0, z31.b
+orqv v31.2d, p7, z31.d
+orqv v15.8h, p5, z15.h
+orqv v10.4s, p3, z20.s
@@ -6640,6 +6640,7 @@ const struct aarch64_opcode aarch64_opcode_table[] =
SVE2p1_INSN("fminqv",0x6417a000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_HSD_HSD, F_OPD_SIZE, 0),
SVE2p1_INSN("dupq",0x05202400, 0xffe0fc00, sve_index, 0, OP2 (SVE_Zd, SVE_Zn_5_INDEX), OP_SVE_VV_BHSD, 0, 0),
+ SVE2p1_INSN("orqv",0x041c2000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, 0),
SVE2p1_INSNC("extq",0x05602400, 0xfff0fc00, sve_misc, 0, OP4 (SVE_Zd, SVE_Zd, SVE_Zm_5, SVE_UIMM4), OP_SVE_BBBU, 0, C_SCAN_MOVPRFX, 1),
SVE2p1_INSN("ld1q",0xc400a000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_ZX), OP_SVE_QZD, F_OD (1), 0),