This is the mail archive of the binutils-cvs@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] [AArch64][SVE 32/32] Add SVE tests


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=bc33f5f961b18a0a8303924f7bc6140730ec006a

commit bc33f5f961b18a0a8303924f7bc6140730ec006a
Author: Richard Sandiford <richard.sandiford@arm.com>
Date:   Wed Sep 21 16:59:07 2016 +0100

    [AArch64][SVE 32/32] Add SVE tests
    
    This patch adds new tests for SVE.  It also extends diagnostic.[sl] with
    checks for some inappropriate uses of MUL and MUL VL in base AArch64
    instructions.
    
    gas/testsuite/
    	* gas/aarch64/diagnostic.s, gas/aarch64/diagnostic.l: Add tests for
    	invalid uses of MUL VL and MUL in base AArch64 instructions.
    	* gas/aarch64/sve-add.s, gas/aarch64/sve-add.d, gas/aarch64/sve-dup.s,
    	gas/aarch64/sve-dup.d, gas/aarch64/sve-invalid.s,
    	gas/aarch64/sve-invalid.d, gas/aarch64/sve-invalid.l,
    	gas/aarch64/sve-reg-diagnostic.s, gas/aarch64/sve-reg-diagnostic.d,
    	gas/aarch64/sve-reg-diagnostic.l, gas/aarch64/sve.s,
    	gas/aarch64/sve.d: New tests.

Diff:
---
 gas/testsuite/ChangeLog                        |    11 +
 gas/testsuite/gas/aarch64/diagnostic.l         |    14 +
 gas/testsuite/gas/aarch64/diagnostic.s         |    17 +
 gas/testsuite/gas/aarch64/sve-add.d            |   151 +
 gas/testsuite/gas/aarch64/sve-add.s            |   149 +
 gas/testsuite/gas/aarch64/sve-dup.d            |   161 +
 gas/testsuite/gas/aarch64/sve-dup.s            |   159 +
 gas/testsuite/gas/aarch64/sve-invalid.d        |     4 +
 gas/testsuite/gas/aarch64/sve-invalid.l        |   944 +
 gas/testsuite/gas/aarch64/sve-invalid.s        |  1163 +
 gas/testsuite/gas/aarch64/sve-reg-diagnostic.d |     3 +
 gas/testsuite/gas/aarch64/sve-reg-diagnostic.l |    24 +
 gas/testsuite/gas/aarch64/sve-reg-diagnostic.s |   143 +
 gas/testsuite/gas/aarch64/sve.d                | 38238 ++++++++++++++++++++++
 gas/testsuite/gas/aarch64/sve.s                | 38247 +++++++++++++++++++++++
 15 files changed, 79428 insertions(+)

diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
new file mode 100644
index 0000000..8499684
--- /dev/null
+++ b/gas/testsuite/ChangeLog
@@ -0,0 +1,11 @@
+2016-09-21  Richard Sandiford  <richard.sandiford@arm.com>
+
+	* gas/aarch64/diagnostic.s, gas/aarch64/diagnostic.l: Add tests for
+	invalid uses of MUL VL and MUL in base AArch64 instructions.
+	* gas/aarch64/sve-add.s, gas/aarch64/sve-add.d, gas/aarch64/sve-dup.s,
+	gas/aarch64/sve-dup.d, gas/aarch64/sve-invalid.s,
+	gas/aarch64/sve-invalid.d, gas/aarch64/sve-invalid.l,
+	gas/aarch64/sve-reg-diagnostic.s, gas/aarch64/sve-reg-diagnostic.d,
+	gas/aarch64/sve-reg-diagnostic.l, gas/aarch64/sve.s,
+	gas/aarch64/sve.d: New tests.
+
diff --git a/gas/testsuite/gas/aarch64/diagnostic.l b/gas/testsuite/gas/aarch64/diagnostic.l
index 0fb4db9..f8bbbc2 100644
--- a/gas/testsuite/gas/aarch64/diagnostic.l
+++ b/gas/testsuite/gas/aarch64/diagnostic.l
@@ -158,3 +158,17 @@
 [^:]*:276: Error: invalid addressing mode at operand 3 -- `ldnp x1,x2,\[x3\],x4'
 [^:]*:278: Error: invalid addressing mode at operand 2 -- `stuminl x0,\[x3\],x4'
 [^:]*:279: Error: invalid addressing mode at operand 2 -- `prfum pldl1keep,\[x3\],x4'
+[^:]*:281: Error: '\]' expected at operand 2 -- `ldr x0,\[x1,#1,mul vl\]'
+[^:]*:282: Error: invalid use of 'MUL' at operand 2 -- `ldr x0,\[x1,x2,mul vl\]'
+[^:]*:283: Error: invalid use of 'MUL' at operand 2 -- `ldr x0,\[x1,x2,mul#1\]'
+[^:]*:284: Error: invalid use of 'MUL' at operand 2 -- `ldr x0,\[x1,x2,mul#4\]'
+[^:]*:286: Error: invalid use of 'MUL' at operand 2 -- `strb w7,\[x30,x0,mul\]'
+[^:]*:287: Error: invalid use of 'MUL' at operand 2 -- `strb w7,\[x30,x0,mul#1\]'
+[^:]*:288: Error: invalid use of 'MUL' at operand 2 -- `strb w7,\[x30,w0,mul\]'
+[^:]*:289: Error: invalid use of 'MUL' at operand 2 -- `strb w7,\[x30,w0,mul#2\]'
+[^:]*:291: Error: invalid use of 'MUL' at operand 3 -- `adds x1,sp,1,mul#1'
+[^:]*:292: Error: invalid use of 'MUL' at operand 3 -- `adds x1,sp,2,mul#255'
+[^:]*:293: Error: invalid use of 'MUL' at operand 3 -- `adds x1,sp,3,mul#256'
+[^:]*:294: Error: invalid use of 'MUL' at operand 4 -- `orr x0,x0,#0xff,mul#1'
+[^:]*:295: Error: invalid use of 'MUL' at operand 4 -- `orr x0,x0,#0xfe,mul#255'
+[^:]*:296: Error: invalid use of 'MUL' at operand 4 -- `orr x0,x0,#0xfc,mul#256'
diff --git a/gas/testsuite/gas/aarch64/diagnostic.s b/gas/testsuite/gas/aarch64/diagnostic.s
index a9cd124..7974bc2 100644
--- a/gas/testsuite/gas/aarch64/diagnostic.s
+++ b/gas/testsuite/gas/aarch64/diagnostic.s
@@ -277,3 +277,20 @@
 	ld1	{v0.4s}, [x3], x4 // OK
 	stuminl x0, [x3], x4
 	prfum	pldl1keep, [x3], x4
+
+	ldr	x0, [x1, #1, mul vl]
+	ldr	x0, [x1, x2, mul vl]
+	ldr	x0, [x1, x2, mul #1]
+	ldr	x0, [x1, x2, mul #4]
+
+	strb	w7, [x30, x0, mul]
+	strb	w7, [x30, x0, mul #1]
+	strb	w7, [x30, w0, mul]
+	strb	w7, [x30, w0, mul #2]
+
+	adds	x1, sp, 1, mul #1
+	adds	x1, sp, 2, mul #255
+	adds	x1, sp, 3, mul #256
+	orr	x0, x0, #0xff, mul #1
+	orr	x0, x0, #0xfe, mul #255
+	orr	x0, x0, #0xfc, mul #256
diff --git a/gas/testsuite/gas/aarch64/sve-add.d b/gas/testsuite/gas/aarch64/sve-add.d
new file mode 100644
index 0000000..2141a05
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve-add.d
@@ -0,0 +1,151 @@
+#as: -march=armv8-a+sve
+#objdump: -dr
+
+.*:     file format .*
+
+
+Disassembly of section .*:
+
+0+ <.*>:
+.*:	2520c020 	add	z0\.b, z0\.b, #1
+.*:	2520cfe0 	add	z0\.b, z0\.b, #127
+.*:	2520d000 	add	z0\.b, z0\.b, #128
+.*:	2520d020 	add	z0\.b, z0\.b, #129
+.*:	2520dfe0 	add	z0\.b, z0\.b, #255
+.*:	2520c000 	add	z0\.b, z0\.b, #0
+.*:	2520c020 	add	z0\.b, z0\.b, #1
+.*:	2520cfe0 	add	z0\.b, z0\.b, #127
+.*:	2520d000 	add	z0\.b, z0\.b, #128
+.*:	2520dfe0 	add	z0\.b, z0\.b, #255
+.*:	2560e000 	add	z0\.h, z0\.h, #0, lsl #8
+.*:	2560c020 	add	z0\.h, z0\.h, #1
+.*:	2560cfe0 	add	z0\.h, z0\.h, #127
+.*:	2560d000 	add	z0\.h, z0\.h, #128
+.*:	2560d020 	add	z0\.h, z0\.h, #129
+.*:	2560dfe0 	add	z0\.h, z0\.h, #255
+.*:	2560e020 	add	z0\.h, z0\.h, #256
+.*:	2560efe0 	add	z0\.h, z0\.h, #32512
+.*:	2560f000 	add	z0\.h, z0\.h, #32768
+.*:	2560f020 	add	z0\.h, z0\.h, #33024
+.*:	2560c000 	add	z0\.h, z0\.h, #0
+.*:	2560c020 	add	z0\.h, z0\.h, #1
+.*:	2560cfe0 	add	z0\.h, z0\.h, #127
+.*:	2560d000 	add	z0\.h, z0\.h, #128
+.*:	2560d020 	add	z0\.h, z0\.h, #129
+.*:	2560dfe0 	add	z0\.h, z0\.h, #255
+.*:	2560e020 	add	z0\.h, z0\.h, #256
+.*:	2560efe0 	add	z0\.h, z0\.h, #32512
+.*:	2560f000 	add	z0\.h, z0\.h, #32768
+.*:	2560f020 	add	z0\.h, z0\.h, #33024
+.*:	2560ffe0 	add	z0\.h, z0\.h, #65280
+.*:	2560e020 	add	z0\.h, z0\.h, #256
+.*:	2560efe0 	add	z0\.h, z0\.h, #32512
+.*:	2560f000 	add	z0\.h, z0\.h, #32768
+.*:	2560f020 	add	z0\.h, z0\.h, #33024
+.*:	2560ffe0 	add	z0\.h, z0\.h, #65280
+.*:	2560e000 	add	z0\.h, z0\.h, #0, lsl #8
+.*:	2560e020 	add	z0\.h, z0\.h, #256
+.*:	2560efe0 	add	z0\.h, z0\.h, #32512
+.*:	2560f000 	add	z0\.h, z0\.h, #32768
+.*:	2560ffe0 	add	z0\.h, z0\.h, #65280
+.*:	25a0c000 	add	z0\.s, z0\.s, #0
+.*:	25a0c020 	add	z0\.s, z0\.s, #1
+.*:	25a0cfe0 	add	z0\.s, z0\.s, #127
+.*:	25a0d000 	add	z0\.s, z0\.s, #128
+.*:	25a0d020 	add	z0\.s, z0\.s, #129
+.*:	25a0dfe0 	add	z0\.s, z0\.s, #255
+.*:	25a0e020 	add	z0\.s, z0\.s, #256
+.*:	25a0efe0 	add	z0\.s, z0\.s, #32512
+.*:	25a0f000 	add	z0\.s, z0\.s, #32768
+.*:	25a0ffe0 	add	z0\.s, z0\.s, #65280
+.*:	25a0e000 	add	z0\.s, z0\.s, #0, lsl #8
+.*:	25a0e020 	add	z0\.s, z0\.s, #256
+.*:	25a0efe0 	add	z0\.s, z0\.s, #32512
+.*:	25a0f000 	add	z0\.s, z0\.s, #32768
+.*:	25a0ffe0 	add	z0\.s, z0\.s, #65280
+.*:	25e0c000 	add	z0\.d, z0\.d, #0
+.*:	25e0c020 	add	z0\.d, z0\.d, #1
+.*:	25e0cfe0 	add	z0\.d, z0\.d, #127
+.*:	25e0d000 	add	z0\.d, z0\.d, #128
+.*:	25e0d020 	add	z0\.d, z0\.d, #129
+.*:	25e0dfe0 	add	z0\.d, z0\.d, #255
+.*:	25e0e020 	add	z0\.d, z0\.d, #256
+.*:	25e0efe0 	add	z0\.d, z0\.d, #32512
+.*:	25e0f000 	add	z0\.d, z0\.d, #32768
+.*:	25e0ffe0 	add	z0\.d, z0\.d, #65280
+.*:	25e0e000 	add	z0\.d, z0\.d, #0, lsl #8
+.*:	25e0e020 	add	z0\.d, z0\.d, #256
+.*:	25e0efe0 	add	z0\.d, z0\.d, #32512
+.*:	25e0f000 	add	z0\.d, z0\.d, #32768
+.*:	25e0ffe0 	add	z0\.d, z0\.d, #65280
+.*:	2521c020 	sub	z0\.b, z0\.b, #1
+.*:	2521cfe0 	sub	z0\.b, z0\.b, #127
+.*:	2521d000 	sub	z0\.b, z0\.b, #128
+.*:	2521d020 	sub	z0\.b, z0\.b, #129
+.*:	2521dfe0 	sub	z0\.b, z0\.b, #255
+.*:	2521c000 	sub	z0\.b, z0\.b, #0
+.*:	2521c020 	sub	z0\.b, z0\.b, #1
+.*:	2521cfe0 	sub	z0\.b, z0\.b, #127
+.*:	2521d000 	sub	z0\.b, z0\.b, #128
+.*:	2521dfe0 	sub	z0\.b, z0\.b, #255
+.*:	2561e000 	sub	z0\.h, z0\.h, #0, lsl #8
+.*:	2561c020 	sub	z0\.h, z0\.h, #1
+.*:	2561cfe0 	sub	z0\.h, z0\.h, #127
+.*:	2561d000 	sub	z0\.h, z0\.h, #128
+.*:	2561d020 	sub	z0\.h, z0\.h, #129
+.*:	2561dfe0 	sub	z0\.h, z0\.h, #255
+.*:	2561e020 	sub	z0\.h, z0\.h, #256
+.*:	2561efe0 	sub	z0\.h, z0\.h, #32512
+.*:	2561f000 	sub	z0\.h, z0\.h, #32768
+.*:	2561f020 	sub	z0\.h, z0\.h, #33024
+.*:	2561c000 	sub	z0\.h, z0\.h, #0
+.*:	2561c020 	sub	z0\.h, z0\.h, #1
+.*:	2561cfe0 	sub	z0\.h, z0\.h, #127
+.*:	2561d000 	sub	z0\.h, z0\.h, #128
+.*:	2561d020 	sub	z0\.h, z0\.h, #129
+.*:	2561dfe0 	sub	z0\.h, z0\.h, #255
+.*:	2561e020 	sub	z0\.h, z0\.h, #256
+.*:	2561efe0 	sub	z0\.h, z0\.h, #32512
+.*:	2561f000 	sub	z0\.h, z0\.h, #32768
+.*:	2561f020 	sub	z0\.h, z0\.h, #33024
+.*:	2561ffe0 	sub	z0\.h, z0\.h, #65280
+.*:	2561e020 	sub	z0\.h, z0\.h, #256
+.*:	2561efe0 	sub	z0\.h, z0\.h, #32512
+.*:	2561f000 	sub	z0\.h, z0\.h, #32768
+.*:	2561f020 	sub	z0\.h, z0\.h, #33024
+.*:	2561ffe0 	sub	z0\.h, z0\.h, #65280
+.*:	2561e000 	sub	z0\.h, z0\.h, #0, lsl #8
+.*:	2561e020 	sub	z0\.h, z0\.h, #256
+.*:	2561efe0 	sub	z0\.h, z0\.h, #32512
+.*:	2561f000 	sub	z0\.h, z0\.h, #32768
+.*:	2561ffe0 	sub	z0\.h, z0\.h, #65280
+.*:	25a1c000 	sub	z0\.s, z0\.s, #0
+.*:	25a1c020 	sub	z0\.s, z0\.s, #1
+.*:	25a1cfe0 	sub	z0\.s, z0\.s, #127
+.*:	25a1d000 	sub	z0\.s, z0\.s, #128
+.*:	25a1d020 	sub	z0\.s, z0\.s, #129
+.*:	25a1dfe0 	sub	z0\.s, z0\.s, #255
+.*:	25a1e020 	sub	z0\.s, z0\.s, #256
+.*:	25a1efe0 	sub	z0\.s, z0\.s, #32512
+.*:	25a1f000 	sub	z0\.s, z0\.s, #32768
+.*:	25a1ffe0 	sub	z0\.s, z0\.s, #65280
+.*:	25a1e000 	sub	z0\.s, z0\.s, #0, lsl #8
+.*:	25a1e020 	sub	z0\.s, z0\.s, #256
+.*:	25a1efe0 	sub	z0\.s, z0\.s, #32512
+.*:	25a1f000 	sub	z0\.s, z0\.s, #32768
+.*:	25a1ffe0 	sub	z0\.s, z0\.s, #65280
+.*:	25e1c000 	sub	z0\.d, z0\.d, #0
+.*:	25e1c020 	sub	z0\.d, z0\.d, #1
+.*:	25e1cfe0 	sub	z0\.d, z0\.d, #127
+.*:	25e1d000 	sub	z0\.d, z0\.d, #128
+.*:	25e1d020 	sub	z0\.d, z0\.d, #129
+.*:	25e1dfe0 	sub	z0\.d, z0\.d, #255
+.*:	25e1e020 	sub	z0\.d, z0\.d, #256
+.*:	25e1efe0 	sub	z0\.d, z0\.d, #32512
+.*:	25e1f000 	sub	z0\.d, z0\.d, #32768
+.*:	25e1ffe0 	sub	z0\.d, z0\.d, #65280
+.*:	25e1e000 	sub	z0\.d, z0\.d, #0, lsl #8
+.*:	25e1e020 	sub	z0\.d, z0\.d, #256
+.*:	25e1efe0 	sub	z0\.d, z0\.d, #32512
+.*:	25e1f000 	sub	z0\.d, z0\.d, #32768
+.*:	25e1ffe0 	sub	z0\.d, z0\.d, #65280
diff --git a/gas/testsuite/gas/aarch64/sve-add.s b/gas/testsuite/gas/aarch64/sve-add.s
new file mode 100644
index 0000000..6d26ffd
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve-add.s
@@ -0,0 +1,149 @@
+	add	z0.b, z0.b, #-255
+	add	z0.b, z0.b, #-129
+	add	z0.b, z0.b, #-128
+	add	z0.b, z0.b, #-127
+	add	z0.b, z0.b, #-1
+	add	z0.b, z0.b, #0
+	add	z0.b, z0.b, #1
+	add	z0.b, z0.b, #127
+	add	z0.b, z0.b, #128
+	add	z0.b, z0.b, #255
+
+	add	z0.h, z0.h, #-65536
+	add	z0.h, z0.h, #-65535
+	add	z0.h, z0.h, #-65536 + 127
+	add	z0.h, z0.h, #-65536 + 128
+	add	z0.h, z0.h, #-65536 + 129
+	add	z0.h, z0.h, #-65536 + 255
+	add	z0.h, z0.h, #-65536 + 256
+	add	z0.h, z0.h, #-32768 - 256
+	add	z0.h, z0.h, #-32768
+	add	z0.h, z0.h, #-32768 + 256
+	add	z0.h, z0.h, #0
+	add	z0.h, z0.h, #1
+	add	z0.h, z0.h, #127
+	add	z0.h, z0.h, #128
+	add	z0.h, z0.h, #129
+	add	z0.h, z0.h, #255
+	add	z0.h, z0.h, #256
+	add	z0.h, z0.h, #32768 - 256
+	add	z0.h, z0.h, #32768
+	add	z0.h, z0.h, #32768 + 256
+	add	z0.h, z0.h, #65536 - 256
+	add	z0.h, z0.h, #-255, lsl #8
+	add	z0.h, z0.h, #-129, lsl #8
+	add	z0.h, z0.h, #-128, lsl #8
+	add	z0.h, z0.h, #-127, lsl #8
+	add	z0.h, z0.h, #-1, lsl #8
+	add	z0.h, z0.h, #0, lsl #8
+	add	z0.h, z0.h, #1, lsl #8
+	add	z0.h, z0.h, #127, lsl #8
+	add	z0.h, z0.h, #128, lsl #8
+	add	z0.h, z0.h, #255, lsl #8
+
+	add	z0.s, z0.s, #0
+	add	z0.s, z0.s, #1
+	add	z0.s, z0.s, #127
+	add	z0.s, z0.s, #128
+	add	z0.s, z0.s, #129
+	add	z0.s, z0.s, #255
+	add	z0.s, z0.s, #256
+	add	z0.s, z0.s, #0x7f00
+	add	z0.s, z0.s, #0x8000
+	add	z0.s, z0.s, #0xff00
+	add	z0.s, z0.s, #0, lsl #8
+	add	z0.s, z0.s, #1, lsl #8
+	add	z0.s, z0.s, #127, lsl #8
+	add	z0.s, z0.s, #128, lsl #8
+	add	z0.s, z0.s, #255, lsl #8
+
+	add	z0.d, z0.d, #0
+	add	z0.d, z0.d, #1
+	add	z0.d, z0.d, #127
+	add	z0.d, z0.d, #128
+	add	z0.d, z0.d, #129
+	add	z0.d, z0.d, #255
+	add	z0.d, z0.d, #256
+	add	z0.d, z0.d, #0x7f00
+	add	z0.d, z0.d, #0x8000
+	add	z0.d, z0.d, #0xff00
+	add	z0.d, z0.d, #0, lsl #8
+	add	z0.d, z0.d, #1, lsl #8
+	add	z0.d, z0.d, #127, lsl #8
+	add	z0.d, z0.d, #128, lsl #8
+	add	z0.d, z0.d, #255, lsl #8
+
+	sub	z0.b, z0.b, #-255
+	sub	z0.b, z0.b, #-129
+	sub	z0.b, z0.b, #-128
+	sub	z0.b, z0.b, #-127
+	sub	z0.b, z0.b, #-1
+	sub	z0.b, z0.b, #0
+	sub	z0.b, z0.b, #1
+	sub	z0.b, z0.b, #127
+	sub	z0.b, z0.b, #128
+	sub	z0.b, z0.b, #255
+
+	sub	z0.h, z0.h, #-65536
+	sub	z0.h, z0.h, #-65535
+	sub	z0.h, z0.h, #-65536 + 127
+	sub	z0.h, z0.h, #-65536 + 128
+	sub	z0.h, z0.h, #-65536 + 129
+	sub	z0.h, z0.h, #-65536 + 255
+	sub	z0.h, z0.h, #-65536 + 256
+	sub	z0.h, z0.h, #-32768 - 256
+	sub	z0.h, z0.h, #-32768
+	sub	z0.h, z0.h, #-32768 + 256
+	sub	z0.h, z0.h, #0
+	sub	z0.h, z0.h, #1
+	sub	z0.h, z0.h, #127
+	sub	z0.h, z0.h, #128
+	sub	z0.h, z0.h, #129
+	sub	z0.h, z0.h, #255
+	sub	z0.h, z0.h, #256
+	sub	z0.h, z0.h, #32768 - 256
+	sub	z0.h, z0.h, #32768
+	sub	z0.h, z0.h, #32768 + 256
+	sub	z0.h, z0.h, #65536 - 256
+	sub	z0.h, z0.h, #-255, lsl #8
+	sub	z0.h, z0.h, #-129, lsl #8
+	sub	z0.h, z0.h, #-128, lsl #8
+	sub	z0.h, z0.h, #-127, lsl #8
+	sub	z0.h, z0.h, #-1, lsl #8
+	sub	z0.h, z0.h, #0, lsl #8
+	sub	z0.h, z0.h, #1, lsl #8
+	sub	z0.h, z0.h, #127, lsl #8
+	sub	z0.h, z0.h, #128, lsl #8
+	sub	z0.h, z0.h, #255, lsl #8
+
+	sub	z0.s, z0.s, #0
+	sub	z0.s, z0.s, #1
+	sub	z0.s, z0.s, #127
+	sub	z0.s, z0.s, #128
+	sub	z0.s, z0.s, #129
+	sub	z0.s, z0.s, #255
+	sub	z0.s, z0.s, #256
+	sub	z0.s, z0.s, #0x7f00
+	sub	z0.s, z0.s, #0x8000
+	sub	z0.s, z0.s, #0xff00
+	sub	z0.s, z0.s, #0, lsl #8
+	sub	z0.s, z0.s, #1, lsl #8
+	sub	z0.s, z0.s, #127, lsl #8
+	sub	z0.s, z0.s, #128, lsl #8
+	sub	z0.s, z0.s, #255, lsl #8
+
+	sub	z0.d, z0.d, #0
+	sub	z0.d, z0.d, #1
+	sub	z0.d, z0.d, #127
+	sub	z0.d, z0.d, #128
+	sub	z0.d, z0.d, #129
+	sub	z0.d, z0.d, #255
+	sub	z0.d, z0.d, #256
+	sub	z0.d, z0.d, #0x7f00
+	sub	z0.d, z0.d, #0x8000
+	sub	z0.d, z0.d, #0xff00
+	sub	z0.d, z0.d, #0, lsl #8
+	sub	z0.d, z0.d, #1, lsl #8
+	sub	z0.d, z0.d, #127, lsl #8
+	sub	z0.d, z0.d, #128, lsl #8
+	sub	z0.d, z0.d, #255, lsl #8
diff --git a/gas/testsuite/gas/aarch64/sve-dup.d b/gas/testsuite/gas/aarch64/sve-dup.d
new file mode 100644
index 0000000..3289f89
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve-dup.d
@@ -0,0 +1,161 @@
+#as: -march=armv8-a+sve
+#objdump: -dr
+
+.*:     file format .*
+
+
+Disassembly of section .*:
+
+0+ <.*>:
+.*:	2538c020 	mov	z0\.b, #1
+.*:	2538cfe0 	mov	z0\.b, #127
+.*:	2538d000 	mov	z0\.b, #-128
+.*:	2538d020 	mov	z0\.b, #-127
+.*:	2538dfe0 	mov	z0\.b, #-1
+.*:	2538c000 	mov	z0\.b, #0
+.*:	2538c020 	mov	z0\.b, #1
+.*:	2538cfe0 	mov	z0\.b, #127
+.*:	2538d000 	mov	z0\.b, #-128
+.*:	2538dfe0 	mov	z0\.b, #-1
+.*:	2578c020 	mov	z0\.h, #1
+.*:	2578cfe0 	mov	z0\.h, #127
+.*:	2578e020 	mov	z0\.h, #256
+.*:	2578f000 	mov	z0\.h, #-32768
+.*:	2578f020 	mov	z0\.h, #-32512
+.*:	2578d000 	mov	z0\.h, #-128
+.*:	2578d020 	mov	z0\.h, #-127
+.*:	2578dfe0 	mov	z0\.h, #-1
+.*:	2578c000 	mov	z0\.h, #0
+.*:	2578c020 	mov	z0\.h, #1
+.*:	2578cfe0 	mov	z0\.h, #127
+.*:	2578e020 	mov	z0\.h, #256
+.*:	2578efe0 	mov	z0\.h, #32512
+.*:	2578f000 	mov	z0\.h, #-32768
+.*:	2578ffe0 	mov	z0\.h, #-256
+.*:	2578d000 	mov	z0\.h, #-128
+.*:	2578d020 	mov	z0\.h, #-127
+.*:	2578dfe0 	mov	z0\.h, #-1
+.*:	2578e020 	mov	z0\.h, #256
+.*:	2578efe0 	mov	z0\.h, #32512
+.*:	2578f000 	mov	z0\.h, #-32768
+.*:	2578f020 	mov	z0\.h, #-32512
+.*:	2578ffe0 	mov	z0\.h, #-256
+.*:	2578e000 	mov	z0\.h, #0, lsl #8
+.*:	2578e020 	mov	z0\.h, #256
+.*:	2578efe0 	mov	z0\.h, #32512
+.*:	2578f000 	mov	z0\.h, #-32768
+.*:	2578ffe0 	mov	z0\.h, #-256
+.*:	25b8f000 	mov	z0\.s, #-32768
+.*:	25b8f020 	mov	z0\.s, #-32512
+.*:	25b8d000 	mov	z0\.s, #-128
+.*:	25b8d020 	mov	z0\.s, #-127
+.*:	25b8dfe0 	mov	z0\.s, #-1
+.*:	25b8c000 	mov	z0\.s, #0
+.*:	25b8c020 	mov	z0\.s, #1
+.*:	25b8cfe0 	mov	z0\.s, #127
+.*:	25b8e020 	mov	z0\.s, #256
+.*:	25b8efe0 	mov	z0\.s, #32512
+.*:	25b8d000 	mov	z0\.s, #-128
+.*:	25b8d020 	mov	z0\.s, #-127
+.*:	25b8dfe0 	mov	z0\.s, #-1
+.*:	25b8f000 	mov	z0\.s, #-32768
+.*:	25b8f020 	mov	z0\.s, #-32512
+.*:	25b8ffe0 	mov	z0\.s, #-256
+.*:	25b8e000 	mov	z0\.s, #0, lsl #8
+.*:	25b8e020 	mov	z0\.s, #256
+.*:	25b8efe0 	mov	z0\.s, #32512
+.*:	25f8f000 	mov	z0\.d, #-32768
+.*:	25f8f020 	mov	z0\.d, #-32512
+.*:	25f8d000 	mov	z0\.d, #-128
+.*:	25f8d020 	mov	z0\.d, #-127
+.*:	25f8dfe0 	mov	z0\.d, #-1
+.*:	25f8c000 	mov	z0\.d, #0
+.*:	25f8c020 	mov	z0\.d, #1
+.*:	25f8cfe0 	mov	z0\.d, #127
+.*:	25f8e020 	mov	z0\.d, #256
+.*:	25f8efe0 	mov	z0\.d, #32512
+.*:	25f8d000 	mov	z0\.d, #-128
+.*:	25f8d020 	mov	z0\.d, #-127
+.*:	25f8dfe0 	mov	z0\.d, #-1
+.*:	25f8f000 	mov	z0\.d, #-32768
+.*:	25f8f020 	mov	z0\.d, #-32512
+.*:	25f8ffe0 	mov	z0\.d, #-256
+.*:	25f8e000 	mov	z0\.d, #0, lsl #8
+.*:	25f8e020 	mov	z0\.d, #256
+.*:	25f8efe0 	mov	z0\.d, #32512
+.*:	2538c020 	mov	z0\.b, #1
+.*:	2538cfe0 	mov	z0\.b, #127
+.*:	2538d000 	mov	z0\.b, #-128
+.*:	2538d020 	mov	z0\.b, #-127
+.*:	2538dfe0 	mov	z0\.b, #-1
+.*:	2538c000 	mov	z0\.b, #0
+.*:	2538c020 	mov	z0\.b, #1
+.*:	2538cfe0 	mov	z0\.b, #127
+.*:	2538d000 	mov	z0\.b, #-128
+.*:	2538dfe0 	mov	z0\.b, #-1
+.*:	2578c020 	mov	z0\.h, #1
+.*:	2578cfe0 	mov	z0\.h, #127
+.*:	2578e020 	mov	z0\.h, #256
+.*:	2578f000 	mov	z0\.h, #-32768
+.*:	2578f020 	mov	z0\.h, #-32512
+.*:	2578d000 	mov	z0\.h, #-128
+.*:	2578d020 	mov	z0\.h, #-127
+.*:	2578dfe0 	mov	z0\.h, #-1
+.*:	2578c000 	mov	z0\.h, #0
+.*:	2578c020 	mov	z0\.h, #1
+.*:	2578cfe0 	mov	z0\.h, #127
+.*:	2578e020 	mov	z0\.h, #256
+.*:	2578efe0 	mov	z0\.h, #32512
+.*:	2578f000 	mov	z0\.h, #-32768
+.*:	2578ffe0 	mov	z0\.h, #-256
+.*:	2578d000 	mov	z0\.h, #-128
+.*:	2578d020 	mov	z0\.h, #-127
+.*:	2578dfe0 	mov	z0\.h, #-1
+.*:	2578e020 	mov	z0\.h, #256
+.*:	2578efe0 	mov	z0\.h, #32512
+.*:	2578f000 	mov	z0\.h, #-32768
+.*:	2578f020 	mov	z0\.h, #-32512
+.*:	2578ffe0 	mov	z0\.h, #-256
+.*:	2578e000 	mov	z0\.h, #0, lsl #8
+.*:	2578e020 	mov	z0\.h, #256
+.*:	2578efe0 	mov	z0\.h, #32512
+.*:	2578f000 	mov	z0\.h, #-32768
+.*:	2578ffe0 	mov	z0\.h, #-256
+.*:	25b8f000 	mov	z0\.s, #-32768
+.*:	25b8f020 	mov	z0\.s, #-32512
+.*:	25b8d000 	mov	z0\.s, #-128
+.*:	25b8d020 	mov	z0\.s, #-127
+.*:	25b8dfe0 	mov	z0\.s, #-1
+.*:	25b8c000 	mov	z0\.s, #0
+.*:	25b8c020 	mov	z0\.s, #1
+.*:	25b8cfe0 	mov	z0\.s, #127
+.*:	25b8e020 	mov	z0\.s, #256
+.*:	25b8efe0 	mov	z0\.s, #32512
+.*:	25b8d000 	mov	z0\.s, #-128
+.*:	25b8d020 	mov	z0\.s, #-127
+.*:	25b8dfe0 	mov	z0\.s, #-1
+.*:	25b8f000 	mov	z0\.s, #-32768
+.*:	25b8f020 	mov	z0\.s, #-32512
+.*:	25b8ffe0 	mov	z0\.s, #-256
+.*:	25b8e000 	mov	z0\.s, #0, lsl #8
+.*:	25b8e020 	mov	z0\.s, #256
+.*:	25b8efe0 	mov	z0\.s, #32512
+.*:	25f8f000 	mov	z0\.d, #-32768
+.*:	25f8f020 	mov	z0\.d, #-32512
+.*:	25f8d000 	mov	z0\.d, #-128
+.*:	25f8d020 	mov	z0\.d, #-127
+.*:	25f8dfe0 	mov	z0\.d, #-1
+.*:	25f8c000 	mov	z0\.d, #0
+.*:	25f8c020 	mov	z0\.d, #1
+.*:	25f8cfe0 	mov	z0\.d, #127
+.*:	25f8e020 	mov	z0\.d, #256
+.*:	25f8efe0 	mov	z0\.d, #32512
+.*:	25f8d000 	mov	z0\.d, #-128
+.*:	25f8d020 	mov	z0\.d, #-127
+.*:	25f8dfe0 	mov	z0\.d, #-1
+.*:	25f8f000 	mov	z0\.d, #-32768
+.*:	25f8f020 	mov	z0\.d, #-32512
+.*:	25f8ffe0 	mov	z0\.d, #-256
+.*:	25f8e000 	mov	z0\.d, #0, lsl #8
+.*:	25f8e020 	mov	z0\.d, #256
+.*:	25f8efe0 	mov	z0\.d, #32512
diff --git a/gas/testsuite/gas/aarch64/sve-dup.s b/gas/testsuite/gas/aarch64/sve-dup.s
new file mode 100644
index 0000000..1d9e4d0
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve-dup.s
@@ -0,0 +1,159 @@
+	dup	z0.b, #-255
+	dup	z0.b, #-129
+	dup	z0.b, #-128
+	dup	z0.b, #-127
+	dup	z0.b, #-1
+	dup	z0.b, #0
+	dup	z0.b, #1
+	dup	z0.b, #127
+	dup	z0.b, #128
+	dup	z0.b, #255
+
+	dup	z0.h, #-65535
+	dup	z0.h, #-65536 + 127
+	dup	z0.h, #-65536 + 256
+	dup	z0.h, #-32768
+	dup	z0.h, #-32768 + 256
+	dup	z0.h, #-128
+	dup	z0.h, #-127
+	dup	z0.h, #-1
+	dup	z0.h, #0
+	dup	z0.h, #1
+	dup	z0.h, #127
+	dup	z0.h, #256
+	dup	z0.h, #32768 - 256
+	dup	z0.h, #32768
+	dup	z0.h, #65536 - 256
+	dup	z0.h, #65536 - 128
+	dup	z0.h, #65536 - 127
+	dup	z0.h, #65535
+	dup	z0.h, #-255, lsl #8
+	dup	z0.h, #-129, lsl #8
+	dup	z0.h, #-128, lsl #8
+	dup	z0.h, #-127, lsl #8
+	dup	z0.h, #-1, lsl #8
+	dup	z0.h, #0, lsl #8
+	dup	z0.h, #1, lsl #8
+	dup	z0.h, #127, lsl #8
+	dup	z0.h, #128, lsl #8
+	dup	z0.h, #255, lsl #8
+
+	dup	z0.s, #-32768
+	dup	z0.s, #-32768 + 256
+	dup	z0.s, #-128
+	dup	z0.s, #-127
+	dup	z0.s, #-1
+	dup	z0.s, #0
+	dup	z0.s, #1
+	dup	z0.s, #127
+	dup	z0.s, #256
+	dup	z0.s, #32768 - 256
+	dup	z0.s, #0xffffff80
+	dup	z0.s, #0xffffff81
+	dup	z0.s, #0xffffffff
+	dup	z0.s, #-128, lsl #8
+	dup	z0.s, #-127, lsl #8
+	dup	z0.s, #-1, lsl #8
+	dup	z0.s, #0, lsl #8
+	dup	z0.s, #1, lsl #8
+	dup	z0.s, #127, lsl #8
+
+	dup	z0.d, #-32768
+	dup	z0.d, #-32768 + 256
+	dup	z0.d, #-128
+	dup	z0.d, #-127
+	dup	z0.d, #-1
+	dup	z0.d, #0
+	dup	z0.d, #1
+	dup	z0.d, #127
+	dup	z0.d, #256
+	dup	z0.d, #32768 - 256
+	dup	z0.d, #0xffffffffffffff80
+	dup	z0.d, #0xffffffffffffff81
+	dup	z0.d, #0xffffffffffffffff
+	dup	z0.d, #-128, lsl #8
+	dup	z0.d, #-127, lsl #8
+	dup	z0.d, #-1, lsl #8
+	dup	z0.d, #0, lsl #8
+	dup	z0.d, #1, lsl #8
+	dup	z0.d, #127, lsl #8
+
+	mov	z0.b, #-255
+	mov	z0.b, #-129
+	mov	z0.b, #-128
+	mov	z0.b, #-127
+	mov	z0.b, #-1
+	mov	z0.b, #0
+	mov	z0.b, #1
+	mov	z0.b, #127
+	mov	z0.b, #128
+	mov	z0.b, #255
+
+	mov	z0.h, #-65535
+	mov	z0.h, #-65536 + 127
+	mov	z0.h, #-65536 + 256
+	mov	z0.h, #-32768
+	mov	z0.h, #-32768 + 256
+	mov	z0.h, #-128
+	mov	z0.h, #-127
+	mov	z0.h, #-1
+	mov	z0.h, #0
+	mov	z0.h, #1
+	mov	z0.h, #127
+	mov	z0.h, #256
+	mov	z0.h, #32768 - 256
+	mov	z0.h, #32768
+	mov	z0.h, #65536 - 256
+	mov	z0.h, #65536 - 128
+	mov	z0.h, #65536 - 127
+	mov	z0.h, #65535
+	mov	z0.h, #-255, lsl #8
+	mov	z0.h, #-129, lsl #8
+	mov	z0.h, #-128, lsl #8
+	mov	z0.h, #-127, lsl #8
+	mov	z0.h, #-1, lsl #8
+	mov	z0.h, #0, lsl #8
+	mov	z0.h, #1, lsl #8
+	mov	z0.h, #127, lsl #8
+	mov	z0.h, #128, lsl #8
+	mov	z0.h, #255, lsl #8
+
+	mov	z0.s, #-32768
+	mov	z0.s, #-32768 + 256
+	mov	z0.s, #-128
+	mov	z0.s, #-127
+	mov	z0.s, #-1
+	mov	z0.s, #0
+	mov	z0.s, #1
+	mov	z0.s, #127
+	mov	z0.s, #256
+	mov	z0.s, #32768 - 256
+	mov	z0.s, #0xffffff80
+	mov	z0.s, #0xffffff81
+	mov	z0.s, #0xffffffff
+	mov	z0.s, #-128, lsl #8
+	mov	z0.s, #-127, lsl #8
+	mov	z0.s, #-1, lsl #8
+	mov	z0.s, #0, lsl #8
+	mov	z0.s, #1, lsl #8
+	mov	z0.s, #127, lsl #8
+
+	mov	z0.d, #-32768
+	mov	z0.d, #-32768 + 256
+	mov	z0.d, #-128
+	mov	z0.d, #-127
+	mov	z0.d, #-1
+	mov	z0.d, #0
+	mov	z0.d, #1
+	mov	z0.d, #127
+	mov	z0.d, #256
+	mov	z0.d, #32768 - 256
+	mov	z0.d, #0xffffffffffffff80
+	mov	z0.d, #0xffffffffffffff81
+	mov	z0.d, #0xffffffffffffffff
+	mov	z0.d, #-128, lsl #8
+	mov	z0.d, #-127, lsl #8
+	mov	z0.d, #-1, lsl #8
+	mov	z0.d, #0, lsl #8
+	mov	z0.d, #1, lsl #8
+	mov	z0.d, #127, lsl #8
diff --git a/gas/testsuite/gas/aarch64/sve-invalid.d b/gas/testsuite/gas/aarch64/sve-invalid.d
new file mode 100644
index 0000000..961b55d
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve-invalid.d
@@ -0,0 +1,4 @@
+#name: Invalid SVE instructions
+#as: -march=armv8-a+sve
+#source: sve-invalid.s
+#error-output: sve-invalid.l
diff --git a/gas/testsuite/gas/aarch64/sve-invalid.l b/gas/testsuite/gas/aarch64/sve-invalid.l
new file mode 100644
index 0000000..1cb06c5
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve-invalid.l
@@ -0,0 +1,944 @@
+[^:]*: Assembler messages:
+.*: Error: operand 2 should be an SVE predicate register -- `fmov z1,z2'
+.*: Error: operand mismatch -- `fmov z1,#1\.0'
+.*: Info:    did you mean this\?
+.*: Info:    	fmov z1\.s,#1\.000000000000000000e\+00
+.*: Info:    other valid variant\(s\):
+.*: Info:    	fmov z1\.d,#1\.000000000000000000e\+00
+.*: Error: operand mismatch -- `fmov z1,#0\.0'
+.*: Info:    did you mean this\?
+.*: Info:    	fmov z1\.s,#0\.0
+.*: Info:    other valid variant\(s\):
+.*: Info:    	fmov z1\.d,#0\.0
+.*: Error: missing predication type at operand 2 -- `not z0\.s,p1/'
+.*: Error: missing predication type at operand 2 -- `not z0\.s,p1/,z2\.s'
+.*: Error: unexpected character `c' in predication type at operand 2 -- `not z0\.s,p1/c,z2\.s'
+.*: Error: operand mismatch -- `movprfx z0\.h,z1\.h'
+.*: Info:    did you mean this\?
+.*: Info:    	movprfx z0,z1
+.*: Error: operand mismatch -- `movprfx z0,z1\.h'
+.*: Info:    did you mean this\?
+.*: Info:    	movprfx z0,z1
+.*: Error: operand mismatch -- `movprfx z0\.h,z1'
+.*: Info:    did you mean this\?
+.*: Info:    	movprfx z0,z1
+.*: Error: operand mismatch -- `movprfx z0\.h,z1\.s'
+.*: Info:    did you mean this\?
+.*: Info:    	movprfx z0,z1
+.*: Error: operand mismatch -- `movprfx z0,p1/m,z1'
+.*: Info:    did you mean this\?
+.*: Info:    	movprfx z0\.b,p1/m,z1\.b
+.*: Info:    other valid variant\(s\):
+.*: Info:    	movprfx z0\.b,p1/z,z1\.b
+.*: Info:    	movprfx z0\.h,p1/z,z1\.h
+.*: Info:    	movprfx z0\.h,p1/m,z1\.h
+.*: Info:    	movprfx z0\.s,p1/z,z1\.s
+.*: Info:    	movprfx z0\.s,p1/m,z1\.s
+.*: Info:    	movprfx z0\.d,p1/z,z1\.d
+.*: Info:    	movprfx z0\.d,p1/m,z1\.d
+.*: Error: operand mismatch -- `movprfx z0,p1/z,z1'
+.*: Info:    did you mean this\?
+.*: Info:    	movprfx z0\.b,p1/z,z1\.b
+.*: Info:    other valid variant\(s\):
+.*: Info:    	movprfx z0\.b,p1/m,z1\.b
+.*: Info:    	movprfx z0\.h,p1/z,z1\.h
+.*: Info:    	movprfx z0\.h,p1/m,z1\.h
+.*: Info:    	movprfx z0\.s,p1/z,z1\.s
+.*: Info:    	movprfx z0\.s,p1/m,z1\.s
+.*: Info:    	movprfx z0\.d,p1/z,z1\.d
+.*: Info:    	movprfx z0\.d,p1/m,z1\.d
+.*: Error: operand mismatch -- `movprfx z0\.b,p1/m,z1'
+.*: Info:    did you mean this\?
+.*: Info:    	movprfx z0\.b,p1/m,z1\.b
+.*: Info:    other valid variant\(s\):
+.*: Info:    	movprfx z0\.b,p1/z,z1\.b
+.*: Info:    	movprfx z0\.h,p1/z,z1\.h
+.*: Info:    	movprfx z0\.h,p1/m,z1\.h
+.*: Info:    	movprfx z0\.s,p1/z,z1\.s
+.*: Info:    	movprfx z0\.s,p1/m,z1\.s
+.*: Info:    	movprfx z0\.d,p1/z,z1\.d
+.*: Info:    	movprfx z0\.d,p1/m,z1\.d
+.*: Error: operand mismatch -- `movprfx z0\.b,p1/z,z1'
+.*: Info:    did you mean this\?
+.*: Info:    	movprfx z0\.b,p1/z,z1\.b
+.*: Info:    other valid variant\(s\):
+.*: Info:    	movprfx z0\.b,p1/m,z1\.b
+.*: Info:    	movprfx z0\.h,p1/z,z1\.h
+.*: Info:    	movprfx z0\.h,p1/m,z1\.h
+.*: Info:    	movprfx z0\.s,p1/z,z1\.s
+.*: Info:    	movprfx z0\.s,p1/m,z1\.s
+.*: Info:    	movprfx z0\.d,p1/z,z1\.d
+.*: Info:    	movprfx z0\.d,p1/m,z1\.d
+.*: Error: operand mismatch -- `movprfx z0,p1/m,z1\.b'
+.*: Info:    did you mean this\?
+.*: Info:    	movprfx z0\.b,p1/m,z1\.b
+.*: Info:    other valid variant\(s\):
+.*: Info:    	movprfx z0\.b,p1/z,z1\.b
+.*: Info:    	movprfx z0\.h,p1/z,z1\.h
+.*: Info:    	movprfx z0\.h,p1/m,z1\.h
+.*: Info:    	movprfx z0\.s,p1/z,z1\.s
+.*: Info:    	movprfx z0\.s,p1/m,z1\.s
+.*: Info:    	movprfx z0\.d,p1/z,z1\.d
+.*: Info:    	movprfx z0\.d,p1/m,z1\.d
+.*: Error: operand mismatch -- `movprfx z0,p1/z,z1\.b'
+.*: Info:    did you mean this\?
+.*: Info:    	movprfx z0\.b,p1/z,z1\.b
+.*: Info:    other valid variant\(s\):
+.*: Info:    	movprfx z0\.b,p1/m,z1\.b
+.*: Info:    	movprfx z0\.h,p1/z,z1\.h
+.*: Info:    	movprfx z0\.h,p1/m,z1\.h
+.*: Info:    	movprfx z0\.s,p1/z,z1\.s
+.*: Info:    	movprfx z0\.s,p1/m,z1\.s
+.*: Info:    	movprfx z0\.d,p1/z,z1\.d
+.*: Info:    	movprfx z0\.d,p1/m,z1\.d
+.*: Error: operand mismatch -- `movprfx z0\.h,p1/m,z1\.b'
+.*: Info:    did you mean this\?
+.*: Info:    	movprfx z0\.b,p1/m,z1\.b
+.*: Info:    other valid variant\(s\):
+.*: Info:    	movprfx z0\.b,p1/z,z1\.b
+.*: Info:    	movprfx z0\.h,p1/z,z1\.h
+.*: Info:    	movprfx z0\.h,p1/m,z1\.h
+.*: Info:    	movprfx z0\.s,p1/z,z1\.s
+.*: Info:    	movprfx z0\.s,p1/m,z1\.s
+.*: Info:    	movprfx z0\.d,p1/z,z1\.d
+.*: Info:    	movprfx z0\.d,p1/m,z1\.d
+.*: Error: operand mismatch -- `movprfx z0\.h,p1/z,z1\.b'
+.*: Info:    did you mean this\?
+.*: Info:    	movprfx z0\.b,p1/z,z1\.b
+.*: Info:    other valid variant\(s\):
+.*: Info:    	movprfx z0\.b,p1/m,z1\.b
+.*: Info:    	movprfx z0\.h,p1/z,z1\.h
+.*: Info:    	movprfx z0\.h,p1/m,z1\.h
+.*: Info:    	movprfx z0\.s,p1/z,z1\.s
+.*: Info:    	movprfx z0\.s,p1/m,z1\.s
+.*: Info:    	movprfx z0\.d,p1/z,z1\.d
+.*: Info:    	movprfx z0\.d,p1/m,z1\.d
+.*: Error: operand mismatch -- `movprfx z0\.b,p1,z1\.b'
+.*: Info:    did you mean this\?
+.*: Info:    	movprfx z0\.b,p1/z,z1\.b
+.*: Info:    other valid variant\(s\):
+.*: Info:    	movprfx z0\.b,p1/m,z1\.b
+.*: Info:    	movprfx z0\.h,p1/z,z1\.h
+.*: Info:    	movprfx z0\.h,p1/m,z1\.h
+.*: Info:    	movprfx z0\.s,p1/z,z1\.s
+.*: Info:    	movprfx z0\.s,p1/m,z1\.s
+.*: Info:    	movprfx z0\.d,p1/z,z1\.d
+.*: Info:    	movprfx z0\.d,p1/m,z1\.d
+.*: Error: operand 1 should be an SVE vector register -- `movprfx p0,p1'
+.*: Error: operand mismatch -- `ldr p0\.b,\[x1\]'
+.*: Info:    did you mean this\?
+.*: Info:    	ldr p0,\[x1\]
+.*: Error: operand mismatch -- `ldr z0\.b,\[x1\]'
+.*: Info:    did you mean this\?
+.*: Info:    	ldr z0,\[x1\]
+.*: Error: operand mismatch -- `str p0\.b,\[x1\]'
+.*: Info:    did you mean this\?
+.*: Info:    	str p0,\[x1\]
+.*: Error: operand mismatch -- `str z0\.b,\[x1\]'
+.*: Info:    did you mean this\?
+.*: Info:    	str z0,\[x1\]
+.*: Error: operand mismatch -- `mov z0,b0'
+.*: Info:    did you mean this\?
+.*: Info:    	mov z0\.b,b0
+.*: Info:    other valid variant\(s\):
+.*: Info:    	mov z0\.h,h0
+.*: Info:    	mov z0\.s,s0
+.*: Info:    	mov z0\.d,d0
+.*: Error: operand mismatch -- `mov z0,z1'
+.*: Info:    did you mean this\?
+.*: Info:    	mov z0\.d,z1\.d
+.*: Error: operand mismatch -- `mov p0,p1'
+.*: Info:    did you mean this\?
+.*: Info:    	mov p0\.b,p1\.b
+.*: Error: operand mismatch -- `add z0,z0,z2'
+.*: Info:    did you mean this\?
+.*: Info:    	add z0\.b,z0\.b,z2\.b
+.*: Info:    other valid variant\(s\):
+.*: Info:    	add z0\.h,z0\.h,z2\.h
+.*: Info:    	add z0\.s,z0\.s,z2\.s
+.*: Info:    	add z0\.d,z0\.d,z2\.d
+.*: Error: operand mismatch -- `add z0,z0,#2'
+.*: Info:    did you mean this\?
+.*: Info:    	add z0\.b,z0\.b,#2
+.*: Info:    other valid variant\(s\):
+.*: Info:    	add z0\.h,z0\.h,#2
+.*: Info:    	add z0\.s,z0\.s,#2
+.*: Info:    	add z0\.d,z0\.d,#2
+.*: Error: operand mismatch -- `add z0,z1,z2'
+.*: Info:    did you mean this\?
+.*: Info:    	add z0\.b,z1\.b,z2\.b
+.*: Info:    other valid variant\(s\):
+.*: Info:    	add z0\.h,z1\.h,z2\.h
+.*: Info:    	add z0\.s,z1\.s,z2\.s
+.*: Info:    	add z0\.d,z1\.d,z2\.d
+.*: Error: operand 2 must be the same register as operand 1 -- `add z0,z1,#1'
+.*: Error: operand 2 must be the same register as operand 1 -- `add z0\.b,z1\.b,#1'
+.*: Error: operand mismatch -- `add z0\.b,z0\.h,#1'
+.*: Info:    did you mean this\?
+.*: Info:    	add z0\.b,z0\.b,#1
+.*: Info:    other valid variant\(s\):
+.*: Info:    	add z0\.h,z0\.h,#1
+.*: Info:    	add z0\.s,z0\.s,#1
+.*: Info:    	add z0\.d,z0\.d,#1
+.*: Error: constant expression required at operand 2 -- `mov z0\.b,z32\.b'
+.*: Error: operand 2 should be an SVE predicate register -- `mov p0\.b,p16\.b'
+.*: Error: p0-p7 expected at operand 2 -- `cmpeq p0\.b,p8/z,z1\.b,z2\.b'
+.*: Error: p0-p7 expected at operand 2 -- `cmpeq p0\.b,p15/z,z1\.b,z2\.b'
+.*: Error: operand mismatch -- `ld1w z0\.s,p0,\[x0\]'
+.*: Info:    did you mean this\?
+.*: Info:    	ld1w \{z0\.s\},p0/z,\[x0\]
+.*: Error: operand mismatch -- `ld1w z0\.s,p0/m,\[x0\]'
+.*: Info:    did you mean this\?
+.*: Info:    	ld1w \{z0\.s\},p0/z,\[x0\]
+.*: Error: operand mismatch -- `cmpeq p0\.b,p0,z1\.b,z2\.b'
+.*: Info:    did you mean this\?
+.*: Info:    	cmpeq p0\.b,p0/z,z1\.b,z2\.b
+.*: Info:    other valid variant\(s\):
+.*: Info:    	cmpeq p0\.h,p0/z,z1\.h,z2\.h
+.*: Info:    	cmpeq p0\.s,p0/z,z1\.s,z2\.s
+.*: Info:    	cmpeq p0\.d,p0/z,z1\.d,z2\.d
+.*: Error: operand mismatch -- `cmpeq p0\.b,p0/m,z1\.b,z2\.b'
+.*: Info:    did you mean this\?
+.*: Info:    	cmpeq p0\.b,p0/z,z1\.b,z2\.b
+.*: Info:    other valid variant\(s\):
+.*: Info:    	cmpeq p0\.h,p0/z,z1\.h,z2\.h
+.*: Info:    	cmpeq p0\.s,p0/z,z1\.s,z2\.s
+.*: Info:    	cmpeq p0\.d,p0/z,z1\.d,z2\.d
+.*: Error: operand mismatch -- `add z0\.s,p0,z0\.s,z1\.s'
+.*: Info:    did you mean this\?
+.*: Info:    	add z0\.s,p0/m,z0\.s,z1\.s
+.*: Info:    other valid variant\(s\):
+.*: Info:    	add z0\.b,p0/m,z0\.b,z1\.b
+.*: Info:    	add z0\.h,p0/m,z0\.h,z1\.h
+.*: Info:    	add z0\.d,p0/m,z0\.d,z1\.d
+.*: Error: operand mismatch -- `add z0\.s,p0/z,z0\.s,z1\.s'
+.*: Info:    did you mean this\?
+.*: Info:    	add z0\.s,p0/m,z0\.s,z1\.s
+.*: Info:    other valid variant\(s\):
+.*: Info:    	add z0\.b,p0/m,z0\.b,z1\.b
+.*: Info:    	add z0\.h,p0/m,z0\.h,z1\.h
+.*: Info:    	add z0\.d,p0/m,z0\.d,z1\.d
+.*: Error: operand mismatch -- `st1w z0\.s,p0/z,\[x0\]'
+.*: Info:    did you mean this\?
+.*: Info:    	st1w \{z0\.s\},p0,\[x0\]
+.*: Error: operand mismatch -- `st1w z0\.s,p0/m,\[x0\]'
+.*: Info:    did you mean this\?
+.*: Info:    	st1w \{z0\.s\},p0,\[x0\]
+.*: Error: missing type suffix at operand 1 -- `ld1b z0,p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `ld1h z0,p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `ld1w z0,p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `ld1d z0,p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `ldff1b z0,p1/z,\[x1,xzr\]'
+.*: Error: missing type suffix at operand 1 -- `ldff1h z0,p1/z,\[x1,xzr,lsl#1\]'
+.*: Error: missing type suffix at operand 1 -- `ldff1w z0,p1/z,\[x1,xzr,lsl#2\]'
+.*: Error: missing type suffix at operand 1 -- `ldff1d z0,p1/z,\[x1,xzr,lsl#3\]'
+.*: Error: missing type suffix at operand 1 -- `ldnf1b z0,p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `ldnf1h z0,p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `ldnf1w z0,p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `ldnf1d z0,p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `ldnt1b z0,p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `ldnt1h z0,p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `ldnt1w z0,p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `ldnt1d z0,p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `st1b z0,p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `st1h z0,p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `st1w z0,p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `st1d z0,p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `stnt1b z0,p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `stnt1h z0,p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `stnt1w z0,p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `stnt1d z0,p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `ld1b {z0},p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `ld1h {z0},p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `ld1w {z0},p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `ld1d {z0},p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `ldff1b {z0},p1/z,\[x1,xzr\]'
+.*: Error: missing type suffix at operand 1 -- `ldff1h {z0},p1/z,\[x1,xzr,lsl#1\]'
+.*: Error: missing type suffix at operand 1 -- `ldff1w {z0},p1/z,\[x1,xzr,lsl#2\]'
+.*: Error: missing type suffix at operand 1 -- `ldff1d {z0},p1/z,\[x1,xzr,lsl#3\]'
+.*: Error: missing type suffix at operand 1 -- `ldnf1b {z0},p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `ldnf1h {z0},p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `ldnf1w {z0},p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `ldnf1d {z0},p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `ldnt1b {z0},p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `ldnt1h {z0},p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `ldnt1w {z0},p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `ldnt1d {z0},p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `st1b {z0},p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `st1h {z0},p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `st1w {z0},p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `st1d {z0},p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `stnt1b {z0},p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `stnt1h {z0},p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `stnt1w {z0},p1/z,\[x1\]'
+.*: Error: missing type suffix at operand 1 -- `stnt1d {z0},p1/z,\[x1\]'
+.*: Error: operand 1 should be a list of SVE vector registers -- `ld1b {x0},p1/z,\[x1\]'
+.*: Error: operand 1 should be a list of SVE vector registers -- `ld1b {b0},p1/z,\[x1\]'
+.*: Error: operand 1 should be a list of SVE vector registers -- `ld1b {h0},p1/z,\[x1\]'
+.*: Error: operand 1 should be a list of SVE vector registers -- `ld1b {s0},p1/z,\[x1\]'
+.*: Error: operand 1 should be a list of SVE vector registers -- `ld1b {d0},p1/z,\[x1\]'
+.*: Error: operand 1 should be a list of SVE vector registers -- `ld1b {v0\.2s},p1/z,\[x1\]'
+.*: Error: type mismatch in vector register list at operand 1 -- `ld2b {z0\.b,z1},p1/z,\[x1\]'
+.*: Error: type mismatch in vector register list at operand 1 -- `ld2b {z0\.b,z1\.h},p1/z,\[x1\]'
+.*: Error: type mismatch in vector register list at operand 1 -- `ld2b {z0\.b,z1\.s},p1/z,\[x1\]'
+.*: Error: type mismatch in vector register list at operand 1 -- `ld2b {z0\.b,z1\.d},p1/z,\[x1\]'
+.*: Error: type mismatch in vector register list at operand 1 -- `ld2b {z0\.h,z1},p1/z,\[x1\]'
+.*: Error: type mismatch in vector register list at operand 1 -- `ld2b {z0\.h,z1\.s},p1/z,\[x1\]'
+.*: Error: type mismatch in vector register list at operand 1 -- `ld2b {z0\.h,z1\.d},p1/z,\[x1\]'
+.*: Error: type mismatch in vector register list at operand 1 -- `ld2b {z0\.s,z1},p1/z,\[x1\]'
+.*: Error: type mismatch in vector register list at operand 1 -- `ld2b {z0\.s,z1\.d},p1/z,\[x1\]'
+.*: Error: type mismatch in vector register list at operand 1 -- `ld2b {z0\.d,z1},p1/z,\[x1\]'
+.*: Error: immediate offset out of range -8 to 7 at operand 3 -- `ld1b z0\.b,p1/z,\[x1,#-9,mul vl\]'
+.*: Error: only 'MUL VL' is permitted at operand 3 -- `ld1b z0\.b,p1/z,\[x1,#0,mul#1\]'
+.*: Error: '\]' expected at operand 3 -- `ld1b z0\.b,p1/z,\[x1,#0,mul vl#1\]'
+.*: Error: constant offset required at operand 3 -- `ld1b z0\.b,p1/z,\[x1,#foo,mul vl\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1b z0\.b,p1/z,\[x1,#1\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1b z0\.b,p1/z,\[x1,#7,mul vl\]!'
+.*: Error: immediate offset out of range -8 to 7 at operand 3 -- `ld1b z0\.b,p1/z,\[x1,#8,mul vl\]'
+.*: Error: immediate offset out of range -16 to 14 at operand 3 -- `ld2b \{z0\.b,z1\.b\},p1/z,\[x1,#-18,mul vl\]'
+.*: Error: immediate offset out of range -16 to 14 at operand 3 -- `ld2b \{z0\.b,z1\.b\},p1/z,\[x1,#-17,mul vl\]'
+.*: Error: constant offset required at operand 3 -- `ld2b \{z0\.b,z1\.b\},p1/z,\[x1,#foo,mul vl\]'
+.*: Error: immediate value should be a multiple of 2 at operand 3 -- `ld2b \{z0\.b,z1\.b\},p1/z,\[x1,#1,mul vl\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld2b \{z0\.b,z1\.b\},p1/z,\[x1,#14,mul vl\]!'
+.*: Error: immediate offset out of range -16 to 14 at operand 3 -- `ld2b \{z0\.b,z1\.b\},p1/z,\[x1,#16,mul vl\]'
+.*: Error: immediate offset out of range -24 to 21 at operand 3 -- `ld3b \{z0\.b-z2\.b\},p1/z,\[x1,#-27,mul vl\]'
+.*: Error: immediate offset out of range -24 to 21 at operand 3 -- `ld3b \{z0\.b-z2\.b\},p1/z,\[x1,#-26,mul vl\]'
+.*: Error: immediate offset out of range -24 to 21 at operand 3 -- `ld3b \{z0\.b-z2\.b\},p1/z,\[x1,#-25,mul vl\]'
+.*: Error: constant offset required at operand 3 -- `ld3b \{z0\.b-z2\.b\},p1/z,\[x1,#foo,mul vl\]'
+.*: Error: immediate value should be a multiple of 3 at operand 3 -- `ld3b \{z0\.b-z2\.b\},p1/z,\[x1,#1,mul vl\]'
+.*: Error: immediate value should be a multiple of 3 at operand 3 -- `ld3b \{z0\.b-z2\.b\},p1/z,\[x1,#2,mul vl\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld3b \{z0\.b-z2\.b\},p1/z,\[x1,#21,mul vl\]!'
+.*: Error: immediate offset out of range -24 to 21 at operand 3 -- `ld3b \{z0\.b-z2\.b\},p1/z,\[x1,#24,mul vl\]'
+.*: Error: immediate offset out of range -32 to 28 at operand 3 -- `ld4b \{z0\.b-z3\.b\},p1/z,\[x1,#-36,mul vl\]'
+.*: Error: immediate offset out of range -32 to 28 at operand 3 -- `ld4b \{z0\.b-z3\.b\},p1/z,\[x1,#-35,mul vl\]'
+.*: Error: immediate offset out of range -32 to 28 at operand 3 -- `ld4b \{z0\.b-z3\.b\},p1/z,\[x1,#-34,mul vl\]'
+.*: Error: immediate offset out of range -32 to 28 at operand 3 -- `ld4b \{z0\.b-z3\.b\},p1/z,\[x1,#-33,mul vl\]'
+.*: Error: constant offset required at operand 3 -- `ld4b \{z0\.b-z3\.b\},p1/z,\[x1,#foo,mul vl\]'
+.*: Error: immediate value should be a multiple of 4 at operand 3 -- `ld4b \{z0\.b-z3\.b\},p1/z,\[x1,#1,mul vl\]'
+.*: Error: immediate value should be a multiple of 4 at operand 3 -- `ld4b \{z0\.b-z3\.b\},p1/z,\[x1,#2,mul vl\]'
+.*: Error: immediate value should be a multiple of 4 at operand 3 -- `ld4b \{z0\.b-z3\.b\},p1/z,\[x1,#3,mul vl\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld4b \{z0\.b-z3\.b\},p1/z,\[x1,#28,mul vl\]!'
+.*: Error: immediate offset out of range -32 to 28 at operand 3 -- `ld4b \{z0\.b-z3\.b\},p1/z,\[x1,#32,mul vl\]'
+.*: Error: immediate offset out of range -32 to 31 at operand 3 -- `prfb pldl1keep,p1,\[x1,#-33,mul vl\]'
+.*: Error: constant offset required at operand 3 -- `prfb pldl1keep,p1,\[x1,#foo,mul vl\]'
+.*: Error: invalid addressing mode at operand 3 -- `prfb pldl1keep,p1,\[x1,#1\]'
+.*: Error: invalid addressing mode at operand 3 -- `prfb pldl1keep,p1,\[x1,#31,mul vl\]!'
+.*: Error: immediate offset out of range -32 to 31 at operand 3 -- `prfb pldl1keep,p1,\[x1,#32,mul vl\]'
+.*: Error: immediate offset out of range -256 to 255 at operand 2 -- `ldr z0,\[x1,#-257,mul vl\]'
+.*: Error: constant offset required at operand 2 -- `ldr z0,\[x1,#foo,mul vl\]'
+.*: Error: invalid addressing mode at operand 2 -- `ldr z0,\[x1,#1\]'
+.*: Error: invalid addressing mode at operand 2 -- `ldr z0,\[x1,#255,mul vl\]!'
+.*: Error: immediate offset out of range -256 to 255 at operand 2 -- `ldr z0,\[x1,#256,mul vl\]'
+.*: Error: immediate offset out of range 0 to 63 at operand 3 -- `ld1rb z0\.b,p1/z,\[x1,#-1\]'
+.*: Error: constant offset required at operand 3 -- `ld1rb z0\.b,p1/z,\[x1,#foo\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1rb z0\.b,p1/z,\[x1,#1,mul vl\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1rb z0\.b,p1/z,\[x1,#63\]!'
+.*: Error: invalid addressing mode at operand 3 -- `ld1rb z0\.b,p1/z,\[x1\],#63'
+.*: Error: immediate offset out of range 0 to 63 at operand 3 -- `ld1rb z0\.b,p1/z,\[x1,#64\]'
+.*: Error: immediate offset out of range 0 to 126 at operand 3 -- `ld1rh z0\.h,p1/z,\[x1,#-2\]'
+.*: Error: immediate offset out of range 0 to 126 at operand 3 -- `ld1rh z0\.h,p1/z,\[x1,#-1\]'
+.*: Error: constant offset required at operand 3 -- `ld1rh z0\.h,p1/z,\[x1,#foo\]'
+.*: Error: immediate value should be a multiple of 2 at operand 3 -- `ld1rh z0\.h,p1/z,\[x1,#1\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1rh z0\.h,p1/z,\[x1,#2,mul vl\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1rh z0\.h,p1/z,\[x1,#126\]!'
+.*: Error: invalid addressing mode at operand 3 -- `ld1rh z0\.h,p1/z,\[x1\],#126'
+.*: Error: immediate offset out of range 0 to 126 at operand 3 -- `ld1rh z0\.h,p1/z,\[x1,#128\]'
+.*: Error: immediate offset out of range 0 to 252 at operand 3 -- `ld1rw z0\.s,p1/z,\[x1,#-4\]'
+.*: Error: immediate offset out of range 0 to 252 at operand 3 -- `ld1rw z0\.s,p1/z,\[x1,#-1\]'
+.*: Error: constant offset required at operand 3 -- `ld1rw z0\.s,p1/z,\[x1,#foo\]'
+.*: Error: immediate value should be a multiple of 4 at operand 3 -- `ld1rw z0\.s,p1/z,\[x1,#1\]'
+.*: Error: immediate value should be a multiple of 4 at operand 3 -- `ld1rw z0\.s,p1/z,\[x1,#2\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1rw z0\.s,p1/z,\[x1,#4,mul vl\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1rw z0\.s,p1/z,\[x1,#252\]!'
+.*: Error: invalid addressing mode at operand 3 -- `ld1rw z0\.s,p1/z,\[x1\],#252'
+.*: Error: immediate offset out of range 0 to 252 at operand 3 -- `ld1rw z0\.s,p1/z,\[x1,#256\]'
+.*: Error: immediate offset out of range 0 to 504 at operand 3 -- `ld1rd z0\.d,p1/z,\[x1,#-8\]'
+.*: Error: immediate offset out of range 0 to 504 at operand 3 -- `ld1rd z0\.d,p1/z,\[x1,#-1\]'
+.*: Error: constant offset required at operand 3 -- `ld1rd z0\.d,p1/z,\[x1,#foo\]'
+.*: Error: immediate value should be a multiple of 8 at operand 3 -- `ld1rd z0\.d,p1/z,\[x1,#1\]'
+.*: Error: immediate value should be a multiple of 8 at operand 3 -- `ld1rd z0\.d,p1/z,\[x1,#2\]'
+.*: Error: immediate value should be a multiple of 8 at operand 3 -- `ld1rd z0\.d,p1/z,\[x1,#4\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1rd z0\.d,p1/z,\[x1,#8,mul vl\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1rd z0\.d,p1/z,\[x1,#504\]!'
+.*: Error: invalid addressing mode at operand 3 -- `ld1rd z0\.d,p1/z,\[x1\],#504'
+.*: Error: immediate offset out of range 0 to 504 at operand 3 -- `ld1rd z0\.d,p1/z,\[x1,#512\]'
+.*: Error: register offset not allowed in pre-indexed addressing mode at operand 3 -- `ld1b z0\.b,p1/z,\[x1,x2\]!'
+.*: Error: invalid addressing mode at operand 3 -- `ld1b z0\.b,p1/z,\[x1\],x2'
+.*: Error: invalid addressing mode at operand 3 -- `ld1b z0\.b,p1/z,\[x1,x2,lsl#1\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1b z0\.b,p1/z,\[x1,x2,lsl#2\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1b z0\.b,p1/z,\[x1,x2,lsl#3\]'
+.*: Error: constant shift amount required at operand 3 -- `ld1b z0\.b,p1/z,\[x1,x2,lsl x3\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1b z0\.b,p1/z,\[x1,w2,sxtw\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1b z0\.b,p1/z,\[x1,w2,uxtw\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1h z0\.h,p1/z,\[x1,x2\]'
+.*: Error: register offset not allowed in pre-indexed addressing mode at operand 3 -- `ld1h z0\.h,p1/z,\[x1,x2,lsl#1\]!'
+.*: Error: invalid addressing mode at operand 3 -- `ld1h z0\.h,p1/z,\[x1,x2,lsl#2\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1h z0\.h,p1/z,\[x1,x2,lsl#3\]'
+.*: Error: constant shift amount required at operand 3 -- `ld1h z0\.h,p1/z,\[x1,x2,lsl x3\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1h z0\.h,p1/z,\[x1,w2,sxtw\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1h z0\.h,p1/z,\[x1,w2,uxtw\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1w z0\.s,p1/z,\[x1,x2\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1w z0\.s,p1/z,\[x1,x2,lsl#1\]'
+.*: Error: register offset not allowed in pre-indexed addressing mode at operand 3 -- `ld1w z0\.s,p1/z,\[x1,x2,lsl#2\]!'
+.*: Error: invalid addressing mode at operand 3 -- `ld1w z0\.s,p1/z,\[x1,x2,lsl#3\]'
+.*: Error: constant shift amount required at operand 3 -- `ld1w z0\.s,p1/z,\[x1,x2,lsl x3\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1w z0\.s,p1/z,\[x1,w2,sxtw\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1w z0\.s,p1/z,\[x1,w2,uxtw\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1d z0\.d,p1/z,\[x1,x2\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1d z0\.d,p1/z,\[x1,x2,lsl#1\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1d z0\.d,p1/z,\[x1,x2,lsl#2\]'
+.*: Error: register offset not allowed in pre-indexed addressing mode at operand 3 -- `ld1d z0\.d,p1/z,\[x1,x2,lsl#3\]!'
+.*: Error: constant shift amount required at operand 3 -- `ld1d z0\.d,p1/z,\[x1,x2,lsl x3\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1d z0\.d,p1/z,\[x1,w2,sxtw\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1d z0\.d,p1/z,\[x1,w2,uxtw\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1b z0\.d,p1/z,\[x1,z2\.d,lsl#1\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1b z0\.d,p1/z,\[x1,z2\.d,lsl#2\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1b z0\.d,p1/z,\[x1,z2\.d,lsl#3\]'
+.*: Error: constant shift amount required at operand 3 -- `ld1b z0\.d,p1/z,\[x1,z2\.d,lsl x3\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1h z0\.d,p1/z,\[x1,z2\.d,lsl#2\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1h z0\.d,p1/z,\[x1,z2\.d,lsl#3\]'
+.*: Error: constant shift amount required at operand 3 -- `ld1h z0\.d,p1/z,\[x1,z2\.d,lsl x3\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1w z0\.d,p1/z,\[x1,z2\.d,lsl#1\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1w z0\.d,p1/z,\[x1,z2\.d,lsl#3\]'
+.*: Error: constant shift amount required at operand 3 -- `ld1w z0\.d,p1/z,\[x1,z2\.d,lsl x3\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1d z0\.d,p1/z,\[x1,z2\.d,lsl#1\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1d z0\.d,p1/z,\[x1,z2\.d,lsl#2\]'
+.*: Error: constant shift amount required at operand 3 -- `ld1d z0\.d,p1/z,\[x1,z2\.d,lsl x3\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1b z0\.s,p1/z,\[x1,z2\.s,sxtw#1\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1b z0\.s,p1/z,\[x1,z2\.s,sxtw#2\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1b z0\.s,p1/z,\[x1,z2\.s,sxtw#3\]'
+.*: Error: constant shift amount required at operand 3 -- `ld1b z0\.s,p1/z,\[x1,z2\.s,sxtw x3\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1h z0\.s,p1/z,\[x1,z2\.s,sxtw#2\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1h z0\.s,p1/z,\[x1,z2\.s,sxtw#3\]'
+.*: Error: constant shift amount required at operand 3 -- `ld1h z0\.s,p1/z,\[x1,z2\.s,sxtw x3\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1w z0\.s,p1/z,\[x1,z2\.s,sxtw#1\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1w z0\.s,p1/z,\[x1,z2\.s,sxtw#3\]'
+.*: Error: constant shift amount required at operand 3 -- `ld1w z0\.s,p1/z,\[x1,z2\.s,sxtw x3\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1b z0\.s,p1/z,\[x1,z2\.s,uxtw#1\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1b z0\.s,p1/z,\[x1,z2\.s,uxtw#2\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1b z0\.s,p1/z,\[x1,z2\.s,uxtw#3\]'
+.*: Error: constant shift amount required at operand 3 -- `ld1b z0\.s,p1/z,\[x1,z2\.s,uxtw x3\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1h z0\.s,p1/z,\[x1,z2\.s,uxtw#2\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1h z0\.s,p1/z,\[x1,z2\.s,uxtw#3\]'
+.*: Error: constant shift amount required at operand 3 -- `ld1h z0\.s,p1/z,\[x1,z2\.s,uxtw x3\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1w z0\.s,p1/z,\[x1,z2\.s,uxtw#1\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1w z0\.s,p1/z,\[x1,z2\.s,uxtw#3\]'
+.*: Error: constant shift amount required at operand 3 -- `ld1w z0\.s,p1/z,\[x1,z2\.s,uxtw x3\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1b z0\.d,p1/z,\[x1,z2\.d,sxtw#1\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1b z0\.d,p1/z,\[x1,z2\.d,sxtw#2\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1b z0\.d,p1/z,\[x1,z2\.d,sxtw#3\]'
+.*: Error: constant shift amount required at operand 3 -- `ld1b z0\.d,p1/z,\[x1,z2\.d,sxtw x3\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1h z0\.d,p1/z,\[x1,z2\.d,sxtw#2\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1h z0\.d,p1/z,\[x1,z2\.d,sxtw#3\]'
+.*: Error: constant shift amount required at operand 3 -- `ld1h z0\.d,p1/z,\[x1,z2\.d,sxtw x3\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1w z0\.d,p1/z,\[x1,z2\.d,sxtw#1\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1w z0\.d,p1/z,\[x1,z2\.d,sxtw#3\]'
+.*: Error: constant shift amount required at operand 3 -- `ld1w z0\.d,p1/z,\[x1,z2\.d,sxtw x3\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1d z0\.d,p1/z,\[x1,z2\.d,sxtw#1\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1d z0\.d,p1/z,\[x1,z2\.d,sxtw#2\]'
+.*: Error: constant shift amount required at operand 3 -- `ld1d z0\.d,p1/z,\[x1,z2\.d,sxtw x3\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1b z0\.d,p1/z,\[x1,z2\.d,uxtw#1\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1b z0\.d,p1/z,\[x1,z2\.d,uxtw#2\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1b z0\.d,p1/z,\[x1,z2\.d,uxtw#3\]'
+.*: Error: constant shift amount required at operand 3 -- `ld1b z0\.d,p1/z,\[x1,z2\.d,uxtw x3\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1h z0\.d,p1/z,\[x1,z2\.d,uxtw#2\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1h z0\.d,p1/z,\[x1,z2\.d,uxtw#3\]'
+.*: Error: constant shift amount required at operand 3 -- `ld1h z0\.d,p1/z,\[x1,z2\.d,uxtw x3\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1w z0\.d,p1/z,\[x1,z2\.d,uxtw#1\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1w z0\.d,p1/z,\[x1,z2\.d,uxtw#3\]'
+.*: Error: constant shift amount required at operand 3 -- `ld1w z0\.d,p1/z,\[x1,z2\.d,uxtw x3\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1d z0\.d,p1/z,\[x1,z2\.d,uxtw#1\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1d z0\.d,p1/z,\[x1,z2\.d,uxtw#2\]'
+.*: Error: constant shift amount required at operand 3 -- `ld1d z0\.d,p1/z,\[x1,z2\.d,uxtw x3\]'
+.*: Error: immediate offset out of range 0 to 31 at operand 3 -- `ld1b z0\.d,p1/z,\[z2\.d,#-1\]'
+.*: Error: constant offset required at operand 3 -- `ld1b z0\.d,p1/z,\[z2\.d,#foo\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1b z0\.d,p1/z,\[z2\.d,#1,mul vl\]'
+.*: Error: immediate offset out of range 0 to 31 at operand 3 -- `ld1b z0\.d,p1/z,\[z2\.d,#32\]'
+.*: Error: immediate offset out of range 0 to 62 at operand 3 -- `ld1h z0\.d,p1/z,\[z2\.d,#-2\]'
+.*: Error: immediate offset out of range 0 to 62 at operand 3 -- `ld1h z0\.d,p1/z,\[z2\.d,#-1\]'
+.*: Error: constant offset required at operand 3 -- `ld1h z0\.d,p1/z,\[z2\.d,#foo\]'
+.*: Error: immediate value should be a multiple of 2 at operand 3 -- `ld1h z0\.d,p1/z,\[z2\.d,#1\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1h z0\.d,p1/z,\[z2\.d,#2,mul vl\]'
+.*: Error: immediate offset out of range 0 to 62 at operand 3 -- `ld1h z0\.d,p1/z,\[z2\.d,#64\]'
+.*: Error: immediate offset out of range 0 to 124 at operand 3 -- `ld1w z0\.d,p1/z,\[z2\.d,#-4\]'
+.*: Error: immediate offset out of range 0 to 124 at operand 3 -- `ld1w z0\.d,p1/z,\[z2\.d,#-1\]'
+.*: Error: constant offset required at operand 3 -- `ld1w z0\.d,p1/z,\[z2\.d,#foo\]'
+.*: Error: immediate value should be a multiple of 4 at operand 3 -- `ld1w z0\.d,p1/z,\[z2\.d,#1\]'
+.*: Error: immediate value should be a multiple of 4 at operand 3 -- `ld1w z0\.d,p1/z,\[z2\.d,#2\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1w z0\.d,p1/z,\[z2\.d,#4,mul vl\]'
+.*: Error: immediate offset out of range 0 to 124 at operand 3 -- `ld1w z0\.d,p1/z,\[z2\.d,#128\]'
+.*: Error: immediate offset out of range 0 to 248 at operand 3 -- `ld1d z0\.d,p1/z,\[z2\.d,#-8\]'
+.*: Error: immediate offset out of range 0 to 248 at operand 3 -- `ld1d z0\.d,p1/z,\[z2\.d,#-1\]'
+.*: Error: constant offset required at operand 3 -- `ld1d z0\.d,p1/z,\[z2\.d,#foo\]'
+.*: Error: immediate value should be a multiple of 8 at operand 3 -- `ld1d z0\.d,p1/z,\[z2\.d,#1\]'
+.*: Error: immediate value should be a multiple of 8 at operand 3 -- `ld1d z0\.d,p1/z,\[z2\.d,#2\]'
+.*: Error: immediate value should be a multiple of 8 at operand 3 -- `ld1d z0\.d,p1/z,\[z2\.d,#4\]'
+.*: Error: invalid addressing mode at operand 3 -- `ld1d z0\.d,p1/z,\[z2\.d,#8,mul vl\]'
+.*: Error: immediate offset out of range 0 to 248 at operand 3 -- `ld1d z0\.d,p1/z,\[z2\.d,#256\]'
+.*: Error: shift amount out of range 0 to 63 at operand 2 -- `adr z0\.s,\[z1\.s,z2\.s,lsl#-1\]'
+.*: Error: invalid addressing mode at operand 2 -- `adr z0\.s,\[z1\.s,z2\.s,lsl#4\]'
+.*: Error: constant shift amount required at operand 2 -- `adr z0\.s,\[z1\.s,z2\.s,lsl x3\]'
+.*: Error: offset has different size from base at operand 2 -- `adr z0\.s,\[z1\.s,z2\.d\]'
+.*: Error: offset has different size from base at operand 2 -- `adr z0\.s,\[z1\.s,x2\]'
+.*: Error: offset has different size from base at operand 2 -- `adr z0\.s,\[z1\.d,z2\.s\]'
+.*: Error: invalid use of 32-bit register offset at operand 2 -- `adr z0\.s,\[z1\.d,w2\]'
+.*: Error: offset has different size from base at operand 2 -- `adr z0\.s,\[x1,z2\.s\]'
+.*: Error: invalid addressing mode at operand 2 -- `adr z0\.s,\[x1,z2\.d\]'
+.*: Error: invalid addressing mode at operand 2 -- `adr z0\.s,\[z1\.d,x2\]'
+.*: Error: invalid addressing mode at operand 2 -- `adr z0\.s,\[x1,x2\]'
+.*: Error: shift amount out of range 0 to 63 at operand 2 -- `adr z0\.d,\[z1\.d,z2\.d,lsl#-1\]'
+.*: Error: invalid addressing mode at operand 2 -- `adr z0\.d,\[z1\.d,z2\.d,lsl#4\]'
+.*: Error: constant shift amount required at operand 2 -- `adr z0\.d,\[z1\.d,z2\.d,lsl x3\]'
+.*: Error: invalid addressing mode at operand 2 -- `adr z0\.s,\[z1\.s,z2\.s,sxtw\]'
+.*: Error: shift amount out of range 0 to 63 at operand 2 -- `adr z0\.d,\[z1\.d,z2\.d,sxtw#-1\]'
+.*: Error: invalid addressing mode at operand 2 -- `adr z0\.d,\[z1\.d,z2\.d,sxtw#4\]'
+.*: Error: constant shift amount required at operand 2 -- `adr z0\.d,\[z1\.d,z2\.d,sxtw x3\]'
+.*: Error: invalid addressing mode at operand 2 -- `adr z0\.s,\[z1\.s,z2\.s,uxtw\]'
+.*: Error: shift amount out of range 0 to 63 at operand 2 -- `adr z0\.d,\[z1\.d,z2\.d,uxtw#-1\]'
+.*: Error: invalid addressing mode at operand 2 -- `adr z0\.d,\[z1\.d,z2\.d,uxtw#4\]'
+.*: Error: constant shift amount required at operand 2 -- `adr z0\.d,\[z1\.d,z2\.d,uxtw x3\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `ld1b z0\.b,p0/z,\[x1,xzr\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `ld1b z0\.h,p0/z,\[x1,xzr\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `ld1b z0\.s,p0/z,\[x1,xzr\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `ld1b z0\.d,p0/z,\[x1,xzr\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `ld1sb z0\.h,p0/z,\[x1,xzr\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `ld1sb z0\.s,p0/z,\[x1,xzr\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `ld1sb z0\.d,p0/z,\[x1,xzr\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `ld1h z0\.h,p0/z,\[x1,xzr,lsl#1\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `ld1h z0\.s,p0/z,\[x1,xzr,lsl#1\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `ld1h z0\.d,p0/z,\[x1,xzr,lsl#1\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `ld1sh z0\.s,p0/z,\[x1,xzr,lsl#1\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `ld1sh z0\.d,p0/z,\[x1,xzr,lsl#1\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `ld1w z0\.s,p0/z,\[x1,xzr,lsl#2\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `ld1w z0\.d,p0/z,\[x1,xzr,lsl#2\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `ld1sw z0\.d,p0/z,\[x1,xzr,lsl#2\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `ld1d z0\.d,p0/z,\[x1,xzr,lsl#3\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `ld2b {z0\.b-z1\.b},p0/z,\[x1,xzr\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `ld2h {z0\.h-z1\.h},p0/z,\[x1,xzr,lsl#1\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `ld2w {z0\.s-z1\.s},p0/z,\[x1,xzr,lsl#2\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `ld2d {z0\.d-z1\.d},p0/z,\[x1,xzr,lsl#3\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `ld3b {z0\.b-z2\.b},p0/z,\[x1,xzr\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `ld3h {z0\.h-z2\.h},p0/z,\[x1,xzr,lsl#1\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `ld3w {z0\.s-z2\.s},p0/z,\[x1,xzr,lsl#2\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `ld3d {z0\.d-z2\.d},p0/z,\[x1,xzr,lsl#3\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `ld4b {z0\.b-z3\.b},p0/z,\[x1,xzr\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `ld4h {z0\.h-z3\.h},p0/z,\[x1,xzr,lsl#1\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `ld4w {z0\.s-z3\.s},p0/z,\[x1,xzr,lsl#2\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `ld4d {z0\.d-z3\.d},p0/z,\[x1,xzr,lsl#3\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `ldnt1b z0\.b,p0/z,\[x1,xzr\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `ldnt1h z0\.h,p0/z,\[x1,xzr,lsl#1\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `ldnt1w z0\.s,p0/z,\[x1,xzr,lsl#2\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `ldnt1d z0\.d,p0/z,\[x1,xzr,lsl#3\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `st1b z0\.b,p0,\[x1,xzr\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `st1b z0\.h,p0,\[x1,xzr\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `st1b z0\.s,p0,\[x1,xzr\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `st1b z0\.d,p0,\[x1,xzr\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `st1h z0\.h,p0,\[x1,xzr,lsl#1\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `st1h z0\.s,p0,\[x1,xzr,lsl#1\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `st1h z0\.d,p0,\[x1,xzr,lsl#1\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `st1w z0\.s,p0,\[x1,xzr,lsl#2\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `st1w z0\.d,p0,\[x1,xzr,lsl#2\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `st1d z0\.d,p0,\[x1,xzr,lsl#3\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `st2b {z0\.b-z1\.b},p0,\[x1,xzr\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `st2h {z0\.h-z1\.h},p0,\[x1,xzr,lsl#1\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `st2w {z0\.s-z1\.s},p0,\[x1,xzr,lsl#2\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `st2d {z0\.d-z1\.d},p0,\[x1,xzr,lsl#3\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `st3b {z0\.b-z2\.b},p0,\[x1,xzr\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `st3h {z0\.h-z2\.h},p0,\[x1,xzr,lsl#1\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `st3w {z0\.s-z2\.s},p0,\[x1,xzr,lsl#2\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `st3d {z0\.d-z2\.d},p0,\[x1,xzr,lsl#3\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `st4b {z0\.b-z3\.b},p0,\[x1,xzr\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `st4h {z0\.h-z3\.h},p0,\[x1,xzr,lsl#1\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `st4w {z0\.s-z3\.s},p0,\[x1,xzr,lsl#2\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `st4d {z0\.d-z3\.d},p0,\[x1,xzr,lsl#3\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `stnt1b z0\.b,p0,\[x1,xzr\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `stnt1h z0\.h,p0,\[x1,xzr,lsl#1\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `stnt1w z0\.s,p0,\[x1,xzr,lsl#2\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `stnt1d z0\.d,p0,\[x1,xzr,lsl#3\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `prfb pldl1keep,p0,\[x1,xzr\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `prfh pldl1keep,p0,\[x1,xzr,lsl#1\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `prfw pldl1keep,p0,\[x1,xzr,lsl#2\]'
+.*: Error: index register xzr is not allowed at operand 3 -- `prfd pldl1keep,p0,\[x1,xzr,lsl#3\]'
+.*: Error: immediate too big for element size at operand 3 -- `add z0\.b,z0\.b,#-257'
+.*: Error: immediate too big for element size at operand 3 -- `add z0\.b,z0\.b,#256'
+.*: Error: no shift amount allowed for 8-bit constants at operand 3 -- `add z0\.b,z0\.b,#1,lsl#1'
+.*: Error: no shift amount allowed for 8-bit constants at operand 3 -- `add z0\.b,z0\.b,#0,lsl#8'
+.*: Error: no shift amount allowed for 8-bit constants at operand 3 -- `add z0\.b,z0\.b,#1,lsl#8'
+.*: Error: immediate too big for element size at operand 3 -- `add z0\.h,z0\.h,#-65537'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.h,z0\.h,#-65536\+257'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.h,z0\.h,#-32767'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.h,z0\.h,#-32768\+255'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.h,z0\.h,#-257'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.h,z0\.h,#-255'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.h,z0\.h,#-129'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.h,z0\.h,#-128'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.h,z0\.h,#-127'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.h,z0\.h,#-1'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.h,z0\.h,#257'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.h,z0\.h,#32768-255'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.h,z0\.h,#32767'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.h,z0\.h,#65536-255'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.h,z0\.h,#65536-129'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.h,z0\.h,#65536-128'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.h,z0\.h,#65535'
+.*: Error: immediate too big for element size at operand 3 -- `add z0\.h,z0\.h,#65536'
+.*: Error: shift amount must be 0 or 8 at operand 3 -- `add z0\.h,z0\.h,#1,lsl#1'
+.*: Error: immediate too big for element size at operand 3 -- `add z0\.h,z0\.h,#-257,lsl#8'
+.*: Error: immediate too big for element size at operand 3 -- `add z0\.h,z0\.h,#256,lsl#8'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.s,z0\.s,#-256'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.s,z0\.s,#-255'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.s,z0\.s,#-129'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.s,z0\.s,#-128'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.s,z0\.s,#-1'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.s,z0\.s,#257'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.s,z0\.s,#32768-255'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.s,z0\.s,#32767'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.s,z0\.s,#65536'
+.*: Error: immediate too big for element size at operand 3 -- `add z0\.s,z0\.s,#0x100000000'
+.*: Error: shift amount must be 0 or 8 at operand 3 -- `add z0\.s,z0\.s,#1,lsl#1'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.s,z0\.s,#-1,lsl#8'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.s,z0\.s,#256,lsl#8'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.d,z0\.d,#-256'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.d,z0\.d,#-255'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.d,z0\.d,#-129'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.d,z0\.d,#-128'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.d,z0\.d,#-1'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.d,z0\.d,#257'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.d,z0\.d,#32768-255'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.d,z0\.d,#32767'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.d,z0\.d,#65536'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.d,z0\.d,#0x100000000'
+.*: Error: shift amount must be 0 or 8 at operand 3 -- `add z0\.d,z0\.d,#1,lsl#1'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.d,z0\.d,#-1,lsl#8'
+.*: Error: invalid arithmetic immediate at operand 3 -- `add z0\.d,z0\.d,#256,lsl#8'
+.*: Error: immediate too big for element size at operand 2 -- `dup z0\.b,#-257'
+.*: Error: immediate too big for element size at operand 2 -- `dup z0\.b,#256'
+.*: Error: no shift amount allowed for 8-bit constants at operand 2 -- `dup z0\.b,#1,lsl#1'
+.*: Error: no shift amount allowed for 8-bit constants at operand 2 -- `dup z0\.b,#0,lsl#8'
+.*: Error: no shift amount allowed for 8-bit constants at operand 2 -- `dup z0\.b,#1,lsl#8'
+.*: Error: immediate too big for element size at operand 2 -- `dup z0\.h,#-65537'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.h,#-32767'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.h,#-32768\+255'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.h,#-257'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.h,#-255'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.h,#-129'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.h,#128'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.h,#255'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.h,#257'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.h,#32768-255'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.h,#32767'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.h,#65536-255'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.h,#65536-129'
+.*: Error: immediate too big for element size at operand 2 -- `dup z0\.h,#65536'
+.*: Error: shift amount must be 0 or 8 at operand 2 -- `dup z0\.h,#1,lsl#1'
+.*: Error: immediate too big for element size at operand 2 -- `dup z0\.h,#-257,lsl#8'
+.*: Error: immediate too big for element size at operand 2 -- `dup z0\.h,#256,lsl#8'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.s,#-65536'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.s,#-32769'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.s,#-32767'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.s,#-32768\+255'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.s,#-257'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.s,#-255'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.s,#-129'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.s,#128'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.s,#255'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.s,#257'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.s,#32768-255'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.s,#32767'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.s,#32768'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.s,#65536'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.s,#0xffffff7f'
+.*: Error: immediate too big for element size at operand 2 -- `dup z0\.s,#0x100000000'
+.*: Error: shift amount must be 0 or 8 at operand 2 -- `dup z0\.s,#1,lsl#1'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.s,#-129,lsl#8'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.s,#128,lsl#8'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.d,#-65536'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.d,#-32769'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.d,#-32767'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.d,#-32768\+255'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.d,#-257'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.d,#-255'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.d,#-129'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.d,#128'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.d,#255'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.d,#257'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.d,#32768-255'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.d,#32767'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.d,#32768'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.d,#65536'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.d,#0xffffff7f'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.d,#0x100000000'
+.*: Error: shift amount must be 0 or 8 at operand 2 -- `dup z0\.d,#1,lsl#1'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.d,#-129,lsl#8'
+.*: Error: invalid arithmetic immediate at operand 2 -- `dup z0\.d,#128,lsl#8'
+.*: Error: immediate out of range at operand 3 -- `and z0\.b,z0\.b,#0x0101'
+.*: Error: immediate out of range at operand 3 -- `and z0\.b,z0\.b,#0x01010101'
+.*: Error: immediate out of range at operand 3 -- `and z0\.b,z0\.b,#0x0101010101010101'
+.*: Error: immediate out of range at operand 3 -- `and z0\.b,z0\.b,#0x7f7f'
+.*: Error: immediate out of range at operand 3 -- `and z0\.b,z0\.b,#0x7f7f7f7f'
+.*: Error: immediate out of range at operand 3 -- `and z0\.b,z0\.b,#0x7f7f7f7f7f7f7f7f'
+.*: Error: immediate out of range at operand 3 -- `and z0\.b,z0\.b,#0x8080'
+.*: Error: immediate out of range at operand 3 -- `and z0\.b,z0\.b,#0x80808080'
+.*: Error: immediate out of range at operand 3 -- `and z0\.b,z0\.b,#0x8080808080808080'
+.*: Error: immediate out of range at operand 3 -- `and z0\.b,z0\.b,#0xfefe'
+.*: Error: immediate out of range at operand 3 -- `and z0\.b,z0\.b,#0xfefefefe'
+.*: Error: immediate out of range at operand 3 -- `and z0\.b,z0\.b,#0xfefefefefefefefe'
+.*: Error: immediate out of range at operand 3 -- `and z0\.b,z0\.b,#0x00010001'
+.*: Error: immediate out of range at operand 3 -- `and z0\.b,z0\.b,#0x0001000100010001'
+.*: Error: immediate out of range at operand 3 -- `and z0\.b,z0\.b,#0x7fff'
+.*: Error: immediate out of range at operand 3 -- `and z0\.b,z0\.b,#0x7fff7fff'
+.*: Error: immediate out of range at operand 3 -- `and z0\.b,z0\.b,#0x7fff7fff7fff7fff'
+.*: Error: immediate out of range at operand 3 -- `and z0\.b,z0\.b,#0x8000'
+.*: Error: immediate out of range at operand 3 -- `and z0\.b,z0\.b,#0x80008000'
+.*: Error: immediate out of range at operand 3 -- `and z0\.b,z0\.b,#0x8000800080008000'
+.*: Error: immediate out of range at operand 3 -- `and z0\.b,z0\.b,#0xfffe'
+.*: Error: immediate out of range at operand 3 -- `and z0\.b,z0\.b,#0xfffefffe'
+.*: Error: immediate out of range at operand 3 -- `and z0\.b,z0\.b,#0xfffefffefffefffe'
+.*: Error: immediate out of range at operand 3 -- `and z0\.b,z0\.b,#0x0000000100000001'
+.*: Error: immediate out of range at operand 3 -- `and z0\.b,z0\.b,#0x7fffffff'
+.*: Error: immediate out of range at operand 3 -- `and z0\.b,z0\.b,#0x7fffffff7fffffff'
+.*: Error: immediate out of range at operand 3 -- `and z0\.b,z0\.b,#0x80000000'
+.*: Error: immediate out of range at operand 3 -- `and z0\.b,z0\.b,#0x8000000080000000'
+.*: Error: immediate out of range at operand 3 -- `and z0\.b,z0\.b,#0xfffffffe'
+.*: Error: immediate out of range at operand 3 -- `and z0\.b,z0\.b,#0xfffffffefffffffe'
+.*: Error: immediate out of range at operand 3 -- `and z0\.b,z0\.b,#0x7fffffffffffffff'
+.*: Error: immediate out of range at operand 3 -- `and z0\.b,z0\.b,#0x8000000000000000'
+.*: Error: immediate out of range at operand 3 -- `and z0\.h,z0\.h,#0x01010101'
+.*: Error: immediate out of range at operand 3 -- `and z0\.h,z0\.h,#0x0101010101010101'
+.*: Error: immediate out of range at operand 3 -- `and z0\.h,z0\.h,#0x7f7f7f7f'
+.*: Error: immediate out of range at operand 3 -- `and z0\.h,z0\.h,#0x7f7f7f7f7f7f7f7f'
+.*: Error: immediate out of range at operand 3 -- `and z0\.h,z0\.h,#0x80808080'
+.*: Error: immediate out of range at operand 3 -- `and z0\.h,z0\.h,#0x8080808080808080'
+.*: Error: immediate out of range at operand 3 -- `and z0\.h,z0\.h,#0xfefefefe'
+.*: Error: immediate out of range at operand 3 -- `and z0\.h,z0\.h,#0xfefefefefefefefe'
+.*: Error: immediate out of range at operand 3 -- `and z0\.h,z0\.h,#0x00010001'
+.*: Error: immediate out of range at operand 3 -- `and z0\.h,z0\.h,#0x0001000100010001'
+.*: Error: immediate out of range at operand 3 -- `and z0\.h,z0\.h,#0x7fff7fff'
+.*: Error: immediate out of range at operand 3 -- `and z0\.h,z0\.h,#0x7fff7fff7fff7fff'
+.*: Error: immediate out of range at operand 3 -- `and z0\.h,z0\.h,#0x80008000'
+.*: Error: immediate out of range at operand 3 -- `and z0\.h,z0\.h,#0x8000800080008000'
+.*: Error: immediate out of range at operand 3 -- `and z0\.h,z0\.h,#0xfffefffe'
+.*: Error: immediate out of range at operand 3 -- `and z0\.h,z0\.h,#0xfffefffefffefffe'
+.*: Error: immediate out of range at operand 3 -- `and z0\.h,z0\.h,#0x0000000100000001'
+.*: Error: immediate out of range at operand 3 -- `and z0\.h,z0\.h,#0x7fffffff'
+.*: Error: immediate out of range at operand 3 -- `and z0\.h,z0\.h,#0x7fffffff7fffffff'
+.*: Error: immediate out of range at operand 3 -- `and z0\.h,z0\.h,#0x80000000'
+.*: Error: immediate out of range at operand 3 -- `and z0\.h,z0\.h,#0x8000000080000000'
+.*: Error: immediate out of range at operand 3 -- `and z0\.h,z0\.h,#0xfffffffe'
+.*: Error: immediate out of range at operand 3 -- `and z0\.h,z0\.h,#0xfffffffefffffffe'
+.*: Error: immediate out of range at operand 3 -- `and z0\.h,z0\.h,#0x7fffffffffffffff'
+.*: Error: immediate out of range at operand 3 -- `and z0\.h,z0\.h,#0x8000000000000000'
+.*: Error: immediate out of range at operand 3 -- `and z0\.s,z0\.s,#0x0101010101010101'
+.*: Error: immediate out of range at operand 3 -- `and z0\.s,z0\.s,#0x7f7f7f7f7f7f7f7f'
+.*: Error: immediate out of range at operand 3 -- `and z0\.s,z0\.s,#0x8080808080808080'
+.*: Error: immediate out of range at operand 3 -- `and z0\.s,z0\.s,#0xfefefefefefefefe'
+.*: Error: immediate out of range at operand 3 -- `and z0\.s,z0\.s,#0x0001000100010001'
+.*: Error: immediate out of range at operand 3 -- `and z0\.s,z0\.s,#0x7fff7fff7fff7fff'
+.*: Error: immediate out of range at operand 3 -- `and z0\.s,z0\.s,#0x8000800080008000'
+.*: Error: immediate out of range at operand 3 -- `and z0\.s,z0\.s,#0xfffefffefffefffe'
+.*: Error: immediate out of range at operand 3 -- `and z0\.s,z0\.s,#0x0000000100000001'
+.*: Error: immediate out of range at operand 3 -- `and z0\.s,z0\.s,#0x7fffffff7fffffff'
+.*: Error: immediate out of range at operand 3 -- `and z0\.s,z0\.s,#0x8000000080000000'
+.*: Error: immediate out of range at operand 3 -- `and z0\.s,z0\.s,#0xfffffffefffffffe'
+.*: Error: immediate out of range at operand 3 -- `and z0\.s,z0\.s,#0x7fffffffffffffff'
+.*: Error: immediate out of range at operand 3 -- `and z0\.s,z0\.s,#0x8000000000000000'
+.*: Error: immediate out of range at operand 3 -- `and z0\.d,z0\.d,#0xd'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.b,z0\.b,#0x0101'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.b,z0\.b,#0x01010101'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.b,z0\.b,#0x0101010101010101'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.b,z0\.b,#0x7f7f'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.b,z0\.b,#0x7f7f7f7f'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.b,z0\.b,#0x7f7f7f7f7f7f7f7f'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.b,z0\.b,#0x8080'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.b,z0\.b,#0x80808080'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.b,z0\.b,#0x8080808080808080'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.b,z0\.b,#0xfefe'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.b,z0\.b,#0xfefefefe'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.b,z0\.b,#0xfefefefefefefefe'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.b,z0\.b,#0x00010001'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.b,z0\.b,#0x0001000100010001'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.b,z0\.b,#0x7fff'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.b,z0\.b,#0x7fff7fff'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.b,z0\.b,#0x7fff7fff7fff7fff'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.b,z0\.b,#0x8000'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.b,z0\.b,#0x80008000'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.b,z0\.b,#0x8000800080008000'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.b,z0\.b,#0xfffe'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.b,z0\.b,#0xfffefffe'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.b,z0\.b,#0xfffefffefffefffe'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.b,z0\.b,#0x0000000100000001'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.b,z0\.b,#0x7fffffff'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.b,z0\.b,#0x7fffffff7fffffff'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.b,z0\.b,#0x80000000'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.b,z0\.b,#0x8000000080000000'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.b,z0\.b,#0xfffffffe'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.b,z0\.b,#0xfffffffefffffffe'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.b,z0\.b,#0x7fffffffffffffff'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.b,z0\.b,#0x8000000000000000'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.h,z0\.h,#0x01010101'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.h,z0\.h,#0x0101010101010101'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.h,z0\.h,#0x7f7f7f7f'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.h,z0\.h,#0x7f7f7f7f7f7f7f7f'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.h,z0\.h,#0x80808080'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.h,z0\.h,#0x8080808080808080'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.h,z0\.h,#0xfefefefe'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.h,z0\.h,#0xfefefefefefefefe'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.h,z0\.h,#0x00010001'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.h,z0\.h,#0x0001000100010001'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.h,z0\.h,#0x7fff7fff'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.h,z0\.h,#0x7fff7fff7fff7fff'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.h,z0\.h,#0x80008000'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.h,z0\.h,#0x8000800080008000'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.h,z0\.h,#0xfffefffe'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.h,z0\.h,#0xfffefffefffefffe'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.h,z0\.h,#0x0000000100000001'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.h,z0\.h,#0x7fffffff'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.h,z0\.h,#0x7fffffff7fffffff'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.h,z0\.h,#0x80000000'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.h,z0\.h,#0x8000000080000000'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.h,z0\.h,#0xfffffffe'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.h,z0\.h,#0xfffffffefffffffe'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.h,z0\.h,#0x7fffffffffffffff'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.h,z0\.h,#0x8000000000000000'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.s,z0\.s,#0x0101010101010101'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.s,z0\.s,#0x7f7f7f7f7f7f7f7f'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.s,z0\.s,#0x8080808080808080'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.s,z0\.s,#0xfefefefefefefefe'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.s,z0\.s,#0x0001000100010001'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.s,z0\.s,#0x7fff7fff7fff7fff'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.s,z0\.s,#0x8000800080008000'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.s,z0\.s,#0xfffefffefffefffe'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.s,z0\.s,#0x0000000100000001'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.s,z0\.s,#0x7fffffff7fffffff'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.s,z0\.s,#0x8000000080000000'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.s,z0\.s,#0xfffffffefffffffe'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.s,z0\.s,#0x7fffffffffffffff'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.s,z0\.s,#0x8000000000000000'
+.*: Error: immediate out of range at operand 3 -- `bic z0\.d,z0\.d,#0xd'
+.*: Error: immediate zero expected at operand 4 -- `fcmeq p0\.s,p1/z,z2\.s,#1'
+.*: Error: immediate zero expected at operand 4 -- `fcmeq p0\.s,p1/z,z2\.s,#1\.0'
+.*: Error: invalid floating-point constant at operand 4 -- `fadd z0\.s,p1/m,z0\.s,#0'
+.*: Error: floating-point value must be 0\.5 or 1\.0 at operand 4 -- `fadd z0\.s,p1/m,z0\.s,#0\.0'
+.*: Error: invalid floating-point constant at operand 4 -- `fadd z0\.s,p1/m,z0\.s,#1'
+.*: Error: floating-point value must be 0\.5 or 1\.0 at operand 4 -- `fadd z0\.s,p1/m,z0\.s,#1\.5'
+.*: Error: invalid floating-point constant at operand 4 -- `fadd z0\.s,p1/m,z0\.s,#2'
+.*: Error: floating-point value must be 0\.5 or 1\.0 at operand 4 -- `fadd z0\.s,p1/m,z0\.s,#2\.0'
+.*: Error: invalid floating-point constant at operand 4 -- `fmul z0\.s,p1/m,z0\.s,#0'
+.*: Error: floating-point value must be 0\.5 or 2\.0 at operand 4 -- `fmul z0\.s,p1/m,z0\.s,#0\.0'
+.*: Error: invalid floating-point constant at operand 4 -- `fmul z0\.s,p1/m,z0\.s,#1'
+.*: Error: floating-point value must be 0\.5 or 2\.0 at operand 4 -- `fmul z0\.s,p1/m,z0\.s,#1\.0'
+.*: Error: floating-point value must be 0\.5 or 2\.0 at operand 4 -- `fmul z0\.s,p1/m,z0\.s,#1\.5'
+.*: Error: invalid floating-point constant at operand 4 -- `fmul z0\.s,p1/m,z0\.s,#2'
+.*: Error: invalid floating-point constant at operand 4 -- `fmax z0\.s,p1/m,z0\.s,#0'
+.*: Error: floating-point value must be 0\.0 or 1\.0 at operand 4 -- `fmax z0\.s,p1/m,z0\.s,#0\.5'
+.*: Error: invalid floating-point constant at operand 4 -- `fmax z0\.s,p1/m,z0\.s,#1'
+.*: Error: floating-point value must be 0\.0 or 1\.0 at operand 4 -- `fmax z0\.s,p1/m,z0\.s,#1\.5'
+.*: Error: invalid floating-point constant at operand 4 -- `fmax z0\.s,p1/m,z0\.s,#2'
+.*: Error: floating-point value must be 0\.0 or 1\.0 at operand 4 -- `fmax z0\.s,p1/m,z0\.s,#2\.0'
+.*: Error: operand 2 should be an enumeration value such as POW2 -- `ptrue p1\.b,vl0'
+.*: Error: operand 2 should be an enumeration value such as POW2 -- `ptrue p1\.b,vl255'
+.*: Error: operand 2 should be an enumeration value such as POW2 -- `ptrue p1\.b,#-1'
+.*: Error: operand 2 should be an enumeration value such as POW2 -- `ptrue p1\.b,#32'
+.*: Error: immediate operand required at operand 2 -- `ptrue p1\.b,x0'
+.*: Error: immediate operand required at operand 2 -- `ptrue p1\.b,z0\.s'
+.*: Error: operand 2 should be an enumeration value such as POW2 -- `cntb x0,vl0'
+.*: Error: operand 2 should be an enumeration value such as POW2 -- `cntb x0,vl255'
+.*: Error: operand 2 should be an enumeration value such as POW2 -- `cntb x0,#-1'
+.*: Error: operand 2 should be an enumeration value such as POW2 -- `cntb x0,#32'
+.*: Error: immediate operand required at operand 2 -- `cntb x0,x0'
+.*: Error: immediate operand required at operand 2 -- `cntb x0,z0\.s'
+.*: Error: operand 2 should be an enumeration value such as POW2 -- `cntb x0,mul#1'
+.*: Error: multiplier out of range 1 to 16 at operand 2 -- `cntb x0,pow2,mul#0'
+.*: Error: multiplier out of range 1 to 16 at operand 2 -- `cntb x0,pow2,mul#17'
+.*: Error: shift expression expected at operand 2 -- `cntb x0,pow2,#1'
+.*: Error: operand 1 should be an enumeration value such as PLDL1KEEP -- `prfb pldl0keep,p1,\[x0\]'
+.*: Error: operand 1 should be an enumeration value such as PLDL1KEEP -- `prfb pldl4keep,p1,\[x0\]'
+.*: Error: operand 1 should be an enumeration value such as PLDL1KEEP -- `prfb #-1,p1,\[x0\]'
+.*: Error: operand 1 should be an enumeration value such as PLDL1KEEP -- `prfb #16,p1,\[x0\]'
+.*: Error: immediate operand required at operand 1 -- `prfb x0,p1,\[x0\]'
+.*: Error: immediate operand required at operand 1 -- `prfb z0\.s,p1,\[x0\]'
+.*: Error: immediate value out of range 0 to 7 at operand 3 -- `lsl z0\.b,z0\.b,#-1'
+.*: Error: immediate value out of range 0 to 7 at operand 3 -- `lsl z0\.b,z0\.b,#8'
+.*: Error: immediate value out of range 0 to 7 at operand 3 -- `lsl z0\.b,z0\.b,#9'
+.*: Error: operand 3 should be an SVE vector register -- `lsl z0\.b,z0\.b,x0'
+.*: Error: immediate value out of range 0 to 15 at operand 3 -- `lsl z0\.h,z0\.h,#-1'
+.*: Error: immediate value out of range 0 to 15 at operand 3 -- `lsl z0\.h,z0\.h,#16'
+.*: Error: immediate value out of range 0 to 15 at operand 3 -- `lsl z0\.h,z0\.h,#17'
+.*: Error: immediate value out of range 0 to 31 at operand 3 -- `lsl z0\.s,z0\.s,#-1'
+.*: Error: immediate value out of range 0 to 31 at operand 3 -- `lsl z0\.s,z0\.s,#32'
+.*: Error: immediate value out of range 0 to 31 at operand 3 -- `lsl z0\.s,z0\.s,#33'
+.*: Error: immediate value out of range 0 to 63 at operand 3 -- `lsl z0\.d,z0\.d,#-1'
+.*: Error: immediate value out of range 0 to 63 at operand 3 -- `lsl z0\.d,z0\.d,#64'
+.*: Error: immediate value out of range 0 to 63 at operand 3 -- `lsl z0\.d,z0\.d,#65'
+.*: Error: immediate value out of range 0 to 7 at operand 4 -- `lsl z0\.b,p1/m,z0\.b,#-1'
+.*: Error: immediate value out of range 0 to 7 at operand 4 -- `lsl z0\.b,p1/m,z0\.b,#8'
+.*: Error: immediate value out of range 0 to 7 at operand 4 -- `lsl z0\.b,p1/m,z0\.b,#9'
+.*: Error: operand 4 should be an SVE vector register -- `lsl z0\.b,p1/m,z0\.b,x0'
+.*: Error: immediate value out of range 0 to 15 at operand 4 -- `lsl z0\.h,p1/m,z0\.h,#-1'
+.*: Error: immediate value out of range 0 to 15 at operand 4 -- `lsl z0\.h,p1/m,z0\.h,#16'
+.*: Error: immediate value out of range 0 to 15 at operand 4 -- `lsl z0\.h,p1/m,z0\.h,#17'
+.*: Error: immediate value out of range 0 to 31 at operand 4 -- `lsl z0\.s,p1/m,z0\.s,#-1'
+.*: Error: immediate value out of range 0 to 31 at operand 4 -- `lsl z0\.s,p1/m,z0\.s,#32'
+.*: Error: immediate value out of range 0 to 31 at operand 4 -- `lsl z0\.s,p1/m,z0\.s,#33'
+.*: Error: immediate value out of range 0 to 63 at operand 4 -- `lsl z0\.d,p1/m,z0\.d,#-1'
+.*: Error: immediate value out of range 0 to 63 at operand 4 -- `lsl z0\.d,p1/m,z0\.d,#64'
+.*: Error: immediate value out of range 0 to 63 at operand 4 -- `lsl z0\.d,p1/m,z0\.d,#65'
+.*: Error: immediate value out of range 1 to 8 at operand 3 -- `lsr z0\.b,z0\.b,#-1'
+.*: Error: immediate value out of range 1 to 8 at operand 3 -- `lsr z0\.b,z0\.b,#0'
+.*: Error: immediate value out of range 1 to 8 at operand 3 -- `lsr z0\.b,z0\.b,#9'
+.*: Error: operand 3 should be an SVE vector register -- `lsr z0\.b,z0\.b,x0'
+.*: Error: immediate value out of range 1 to 16 at operand 3 -- `lsr z0\.h,z0\.h,#-1'
+.*: Error: immediate value out of range 1 to 16 at operand 3 -- `lsr z0\.h,z0\.h,#0'
+.*: Error: immediate value out of range 1 to 16 at operand 3 -- `lsr z0\.h,z0\.h,#17'
+.*: Error: immediate value out of range 1 to 32 at operand 3 -- `lsr z0\.s,z0\.s,#-1'
+.*: Error: immediate value out of range 1 to 32 at operand 3 -- `lsr z0\.s,z0\.s,#0'
+.*: Error: immediate value out of range 1 to 32 at operand 3 -- `lsr z0\.s,z0\.s,#33'
+.*: Error: immediate value out of range 1 to 64 at operand 3 -- `lsr z0\.d,z0\.d,#-1'
+.*: Error: immediate value out of range 1 to 64 at operand 3 -- `lsr z0\.d,z0\.d,#0'
+.*: Error: immediate value out of range 1 to 64 at operand 3 -- `lsr z0\.d,z0\.d,#65'
+.*: Error: immediate value out of range 1 to 8 at operand 4 -- `lsr z0\.b,p1/m,z0\.b,#-1'
+.*: Error: immediate value out of range 1 to 8 at operand 4 -- `lsr z0\.b,p1/m,z0\.b,#0'
+.*: Error: immediate value out of range 1 to 8 at operand 4 -- `lsr z0\.b,p1/m,z0\.b,#9'
+.*: Error: operand 4 should be an SVE vector register -- `lsr z0\.b,p1/m,z0\.b,x0'
+.*: Error: immediate value out of range 1 to 16 at operand 4 -- `lsr z0\.h,p1/m,z0\.h,#-1'
+.*: Error: immediate value out of range 1 to 16 at operand 4 -- `lsr z0\.h,p1/m,z0\.h,#0'
+.*: Error: immediate value out of range 1 to 16 at operand 4 -- `lsr z0\.h,p1/m,z0\.h,#17'
+.*: Error: immediate value out of range 1 to 32 at operand 4 -- `lsr z0\.s,p1/m,z0\.s,#-1'
+.*: Error: immediate value out of range 1 to 32 at operand 4 -- `lsr z0\.s,p1/m,z0\.s,#0'
+.*: Error: immediate value out of range 1 to 32 at operand 4 -- `lsr z0\.s,p1/m,z0\.s,#33'
+.*: Error: immediate value out of range 1 to 64 at operand 4 -- `lsr z0\.d,p1/m,z0\.d,#-1'
+.*: Error: immediate value out of range 1 to 64 at operand 4 -- `lsr z0\.d,p1/m,z0\.d,#0'
+.*: Error: immediate value out of range 1 to 64 at operand 4 -- `lsr z0\.d,p1/m,z0\.d,#65'
+.*: Error: immediate value out of range -16 to 15 at operand 2 -- `index z0\.s,#-17,#1'
+.*: Error: immediate value out of range -16 to 15 at operand 2 -- `index z0\.s,#16,#1'
+.*: Error: immediate value out of range -16 to 15 at operand 3 -- `index z0\.s,#0,#-17'
+.*: Error: immediate value out of range -16 to 15 at operand 3 -- `index z0\.s,#0,#16'
+.*: Error: immediate value out of range -32 to 31 at operand 3 -- `addpl x0,sp,#-33'
+.*: Error: immediate value out of range -32 to 31 at operand 3 -- `addpl sp,x0,#32'
+.*: Error: operand 2 should be an integer register or SP -- `addpl x0,xzr,#1'
+.*: Error: operand 1 should be an integer or stack pointer register -- `addpl xzr,x0,#1'
+.*: Error: immediate value out of range -128 to 127 at operand 3 -- `mul z0\.b,z0\.b,#-129'
+.*: Error: immediate value out of range -128 to 127 at operand 3 -- `mul z0\.b,z0\.b,#128'
+.*: Error: immediate value out of range -128 to 127 at operand 3 -- `mul z0\.s,z0\.s,#-129'
+.*: Error: immediate value out of range -128 to 127 at operand 3 -- `mul z0\.s,z0\.s,#128'
+.*: Error: immediate value out of range 0 to 7 at operand 4 -- `ftmad z0\.s,z0\.s,z1\.s,#-1'
+.*: Error: immediate value out of range 0 to 7 at operand 4 -- `ftmad z0\.s,z0\.s,z1\.s,#8'
+.*: Error: immediate operand required at operand 4 -- `ftmad z0\.s,z0\.s,z1\.s,z2\.s'
+.*: Error: immediate value out of range 0 to 127 at operand 4 -- `cmphi p0\.s,p1/z,z2\.s,#-1'
+.*: Error: immediate value out of range 0 to 127 at operand 4 -- `cmphi p0\.s,p1/z,z2\.s,#128'
+.*: Error: immediate value out of range 0 to 255 at operand 3 -- `umax z0\.s,z0\.s,#-1'
+.*: Error: immediate value out of range 0 to 255 at operand 3 -- `umax z0\.s,z0\.s,#256'
+.*: Error: immediate value out of range 0 to 255 at operand 4 -- `ext z0\.b,z0\.b,z1\.b,#-1'
+.*: Error: immediate value out of range 0 to 255 at operand 4 -- `ext z0\.b,z0\.b,z1\.b,#256'
+.*: Error: register element index out of range 0 to 63 at operand 2 -- `dup z0\.b,z1\.b\[-1\]'
+.*: Error: register element index out of range 0 to 63 at operand 2 -- `dup z0\.b,z1\.b\[64\]'
+.*: Error: constant expression required at operand 2 -- `dup z0\.b,z1\.b\[x0\]'
+.*: Error: register element index out of range 0 to 31 at operand 2 -- `dup z0\.h,z1\.h\[-1\]'
+.*: Error: register element index out of range 0 to 31 at operand 2 -- `dup z0\.h,z1\.h\[32\]'
+.*: Error: constant expression required at operand 2 -- `dup z0\.h,z1\.h\[x0\]'
+.*: Error: register element index out of range 0 to 15 at operand 2 -- `dup z0\.s,z1\.s\[-1\]'
+.*: Error: register element index out of range 0 to 15 at operand 2 -- `dup z0\.s,z1\.s\[16\]'
+.*: Error: constant expression required at operand 2 -- `dup z0\.s,z1\.s\[x0\]'
+.*: Error: register element index out of range 0 to 7 at operand 2 -- `dup z0\.d,z1\.d\[-1\]'
+.*: Error: register element index out of range 0 to 7 at operand 2 -- `dup z0\.d,z1\.d\[8\]'
+.*: Error: constant expression required at operand 2 -- `dup z0\.d,z1\.d\[x0\]'
diff --git a/gas/testsuite/gas/aarch64/sve-invalid.s b/gas/testsuite/gas/aarch64/sve-invalid.s
new file mode 100644
index 0000000..0912c52
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve-invalid.s
@@ -0,0 +1,1163 @@
+// Instructions in this file are invalid unless explicitly marked "OK".
+// Other files provide more extensive testing of valid instructions;
+// the only purpose of the valid instructions in this file is to show
+// that the general form of the operands is correct.
+
+	fmov	z1, z2
+	fmov	z1, #1.0
+	fmov	z1, #0.0
+
+	not	z0.s,p1/
+	not	z0.s,p1/,z2.s
+	not	z0.s,p1/c,z2.s
+
+	movprfx	z0.h, z1.h
+	movprfx	z0, z1.h
+	movprfx	z0.h, z1
+	movprfx	z0.h, z1.s
+
+	movprfx	z0, p1/m, z1
+	movprfx	z0, p1/z, z1
+	movprfx	z0.b, p1/m, z1
+	movprfx	z0.b, p1/z, z1
+
+	movprfx	z0, p1/m, z1.b
+	movprfx	z0, p1/z, z1.b
+	movprfx	z0.h, p1/m, z1.b
+	movprfx	z0.h, p1/z, z1.b
+	movprfx	z0.b, p1, z1.b
+
+	movprfx	p0, p1
+
+	ldr	p0.b, [x1]
+	ldr	z0.b, [x1]
+
+	str	p0.b, [x1]
+	str	z0.b, [x1]
+
+	mov	z0, b0
+	mov	z0, z1
+	mov	p0, p1
+
+	add	z0, z0, z2
+	add	z0, z0, #2
+	add	z0, z1, z2
+	add	z0, z1, #1
+	add	z0.b, z1.b, #1
+	add	z0.b, z0.h, #1
+
+	mov	z0.b, z32.b
+	mov	p0.b, p16.b
+
+	cmpeq	p0.b, p8/z, z1.b, z2.b
+	cmpeq	p0.b, p15/z, z1.b, z2.b
+
+	ld1w	z0.s, p0, [x0]
+	ld1w	z0.s, p0/m, [x0]
+	cmpeq	p0.b, p0, z1.b, z2.b
+	cmpeq	p0.b, p0/m, z1.b, z2.b
+	add	z0.s, p0, z0.s, z1.s
+	add	z0.s, p0/z, z0.s, z1.s
+	st1w	z0.s, p0/z, [x0]
+	st1w	z0.s, p0/m, [x0]
+
+	ld1b	z0, p1/z, [x1]
+	ld1h	z0, p1/z, [x1]
+	ld1w	z0, p1/z, [x1]
+	ld1d	z0, p1/z, [x1]
+
+	ldff1b	z0, p1/z, [x1, xzr]
+	ldff1h	z0, p1/z, [x1, xzr, lsl #1]
+	ldff1w	z0, p1/z, [x1, xzr, lsl #2]
+	ldff1d	z0, p1/z, [x1, xzr, lsl #3]
+
+	ldnf1b	z0, p1/z, [x1]
+	ldnf1h	z0, p1/z, [x1]
+	ldnf1w	z0, p1/z, [x1]
+	ldnf1d	z0, p1/z, [x1]
+
+	ldnt1b	z0, p1/z, [x1]
+	ldnt1h	z0, p1/z, [x1]
+	ldnt1w	z0, p1/z, [x1]
+	ldnt1d	z0, p1/z, [x1]
+
+	st1b	z0, p1/z, [x1]
+	st1h	z0, p1/z, [x1]
+	st1w	z0, p1/z, [x1]
+	st1d	z0, p1/z, [x1]
+
+	stnt1b	z0, p1/z, [x1]
+	stnt1h	z0, p1/z, [x1]
+	stnt1w	z0, p1/z, [x1]
+	stnt1d	z0, p1/z, [x1]
+
+	ld1b	{z0}, p1/z, [x1]
+	ld1h	{z0}, p1/z, [x1]
+	ld1w	{z0}, p1/z, [x1]
+	ld1d	{z0}, p1/z, [x1]
+
+	ldff1b	{z0}, p1/z, [x1, xzr]
+	ldff1h	{z0}, p1/z, [x1, xzr, lsl #1]
+	ldff1w	{z0}, p1/z, [x1, xzr, lsl #2]
+	ldff1d	{z0}, p1/z, [x1, xzr, lsl #3]
+
+	ldnf1b	{z0}, p1/z, [x1]
+	ldnf1h	{z0}, p1/z, [x1]
+	ldnf1w	{z0}, p1/z, [x1]
+	ldnf1d	{z0}, p1/z, [x1]
+
+	ldnt1b	{z0}, p1/z, [x1]
+	ldnt1h	{z0}, p1/z, [x1]
+	ldnt1w	{z0}, p1/z, [x1]
+	ldnt1d	{z0}, p1/z, [x1]
+
+	st1b	{z0}, p1/z, [x1]
+	st1h	{z0}, p1/z, [x1]
+	st1w	{z0}, p1/z, [x1]
+	st1d	{z0}, p1/z, [x1]
+
+	stnt1b	{z0}, p1/z, [x1]
+	stnt1h	{z0}, p1/z, [x1]
+	stnt1w	{z0}, p1/z, [x1]
+	stnt1d	{z0}, p1/z, [x1]
+
+	ld1b	{x0}, p1/z, [x1]
+	ld1b	{b0}, p1/z, [x1]
+	ld1b	{h0}, p1/z, [x1]
+	ld1b	{s0}, p1/z, [x1]
+	ld1b	{d0}, p1/z, [x1]
+	ld1b	{v0.2s}, p1/z, [x1]
+
+	ld2b	{z0.b, z1}, p1/z, [x1]
+	ld2b	{z0.b, z1.h}, p1/z, [x1]
+	ld2b	{z0.b, z1.s}, p1/z, [x1]
+	ld2b	{z0.b, z1.d}, p1/z, [x1]
+	ld2b	{z0.h, z1}, p1/z, [x1]
+	ld2b	{z0.h, z1.s}, p1/z, [x1]
+	ld2b	{z0.h, z1.d}, p1/z, [x1]
+	ld2b	{z0.s, z1}, p1/z, [x1]
+	ld2b	{z0.s, z1.d}, p1/z, [x1]
+	ld2b	{z0.d, z1}, p1/z, [x1]
+
+	ld1b	z0.b, p1/z, [x1, #-9, mul vl]
+	ld1b	z0.b, p1/z, [x1, #-8, mul vl]		// OK
+	ld1b	z0.b, p1/z, [x1, #0, mul #1]
+	ld1b	z0.b, p1/z, [x1, #0, mul vl #1]
+	ld1b	z0.b, p1/z, [x1, #foo, mul vl]
+	ld1b	z0.b, p1/z, [x1, #1]
+	ld1b	z0.b, p1/z, [x1, #7, mul vl]		// OK
+	ld1b	z0.b, p1/z, [x1, #7, mul vl]!
+	ld1b	z0.b, p1/z, [x1, #8, mul vl]
+
+	ld2b	{z0.b, z1.b}, p1/z, [x1, #-18, mul vl]
+	ld2b	{z0.b, z1.b}, p1/z, [x1, #-17, mul vl]
+	ld2b	{z0.b, z1.b}, p1/z, [x1, #-16, mul vl]	// OK
+	ld2b	{z0.b, z1.b}, p1/z, [x1, #foo, mul vl]
+	ld2b	{z0.b, z1.b}, p1/z, [x1, #1, mul vl]
+	ld2b	{z0.b, z1.b}, p1/z, [x1, #14, mul vl]	// OK
+	ld2b	{z0.b, z1.b}, p1/z, [x1, #14, mul vl]!
+	ld2b	{z0.b, z1.b}, p1/z, [x1, #16, mul vl]
+
+	ld3b	{z0.b-z2.b}, p1/z, [x1, #-27, mul vl]
+	ld3b	{z0.b-z2.b}, p1/z, [x1, #-26, mul vl]
+	ld3b	{z0.b-z2.b}, p1/z, [x1, #-25, mul vl]
+	ld3b	{z0.b-z[...]

[diff truncated at 100000 bytes]


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]