public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* [PATCH RESEND v2] Aarch64: Allow explicit size specifier for predicate operand of {sq, uq, }{incp, decp}
@ 2022-02-16  0:53 Shaokun Zhang
  2022-02-21 13:13 ` Jan Beulich
                   ` (2 more replies)
  0 siblings, 3 replies; 19+ messages in thread
From: Shaokun Zhang @ 2022-02-16  0:53 UTC (permalink / raw)
  To: binutils; +Cc: Jingtao Cai, Jan Beulich, Bo Dong, Shaokun Zhang

From: Jingtao Cai <caijingtao@huawei.com>

Omitting predicate size specifier in vector form of {sq, uq, }{decp, incp} is deprecated and will be prohibited in a future release of the aarch64,
see https://developer.arm.com/documentation/ddi0602/2021-09/SVE-Instructions/DECP--vector---Decrement-vector-by-count-of-true-predicate-elements-.

This allows explicit size specifier, e.g. `decp z0.h, p0.h`, for predicate operand of these SVE instructions.
The exsiting behaviour of not requiring the specifier is preserved, but will be warned.
And the disasembly is with the specifier with this patch.

The GAS tests passed under our local tests.

opcodes/

* aarch64-tbl.h (aarch64_opcode_table): Add QUALS's type OP_SVE_VV_HSD for decp, incp, sqdecp, sqincp, uqdecp and uqincp.
* aarch64-dis-2.c : Regenerate.

gas/config/

* tc-aarch64.c (warn_deprecated) : New warn_deprecated() function, check for deprecated usages and give a warning.

gas/testsuite/gas/aarch64/

* sve-movprfx_23.s: update movprfx_23 testcase's test_sametwo macro, where take the predicate size specifier.
* sve-movprfx_23.d: update movprfx_23 testcase's expected disassembly.
* sve-movprfx_23.l: update movprfx_23 testcase's expected assembler messages.
* sve.s: add sve testcase's instructions for decp, incp, sqdecp, sqincp, uqdecp and uqincp, which take the predicate size specifier.
* sve.d: update sve testcase's expected disassembly.
* sve.l: New file, add sve testcase's expected assembler messages.

Cc: Jan Beulich <jbeulich@suse.com>
Cc: Bo Dong <dongbo4@huawei.com>
Cc: Shaokun Zhang <zhangshaokun@hisilicon.com>
Signed-off-by: Jingtao Cai <caijingtao@huawei.com>
---
Tip:
The 'aARCH64-dis-2.c' is needed to be regenerated and is not included in this patch,
because of with this modification, 'Message body is too big: 848058 bytes with a limit
of 400 KB' and the patch will being held.

 gas/config/tc-aarch64.c                    |  28 ++
 gas/testsuite/gas/aarch64/sve-movprfx_23.d |  24 +-
 gas/testsuite/gas/aarch64/sve-movprfx_23.l |  24 +-
 gas/testsuite/gas/aarch64/sve-movprfx_23.s |   2 +-
 gas/testsuite/gas/aarch64/sve.d            | 543 ++++++++++++++-------
 gas/testsuite/gas/aarch64/sve.l            | 181 +++++++
 gas/testsuite/gas/aarch64/sve.s            | 181 +++++++
 opcodes/aarch64-tbl.h                      |   6 +
 8 files changed, 784 insertions(+), 205 deletions(-)
 create mode 100644 gas/testsuite/gas/aarch64/sve.l

diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
index a4ef65274e49..6c5309ea24a7 100644
--- a/gas/config/tc-aarch64.c
+++ b/gas/config/tc-aarch64.c
@@ -7840,6 +7840,32 @@ warn_unpredictable_ldst (aarch64_instruction *instr, char *str)
     }
 }
 
+/* Check for deprecated usages that will be prohibited in future.  */
+static void
+warn_deprecated (aarch64_instruction *instr, char *str)
+{
+  aarch64_inst *base = &instr->base;
+  const aarch64_opcode *opcode = base->opcode;
+  const aarch64_opnd_info *opnds = base->operands;
+  switch (opcode->iclass)
+    {
+    case sve_size_hsd:
+      /* For {sq, uq, }{incp, decp}, the omitted predicate size specifier
+         is deprecated and will be prohibited in future.  */
+      if (opnds[0].type == AARCH64_OPND_SVE_Zd
+      && opnds[1].type == AARCH64_OPND_SVE_Pg4_5
+      && opnds[1].qualifier == AARCH64_OPND_QLF_NIL)
+        as_warn
+          (_("omitting predicate size specifier is deprecated and will be "
+         "prohibited in future -- `%s'"),str);
+      break;
+
+    default:
+      break;
+    }
+
+}
+
 static void
 force_automatic_sequence_close (void)
 {
@@ -8016,6 +8042,8 @@ md_assemble (char *str)
 
 	  warn_unpredictable_ldst (&inst, str);
 
+	  warn_deprecated (&inst, str);
+
 	  if (inst.reloc.type == BFD_RELOC_UNUSED
 	      || !inst.reloc.need_libopcodes_p)
 	    output_inst (NULL);
diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_23.d b/gas/testsuite/gas/aarch64/sve-movprfx_23.d
index 60448704174a..e1c6c2c2ccef 100644
--- a/gas/testsuite/gas/aarch64/sve-movprfx_23.d
+++ b/gas/testsuite/gas/aarch64/sve-movprfx_23.d
@@ -9,29 +9,29 @@ Disassembly of section .*:
 
 0+ <.*>:
 [^:]+:	04512461 	movprfx	z1.h, p1/m, z3.h
-[^:]+:	256c8021 	incp	z1.h, p1  // note: merging predicate expected due to preceding `movprfx' at operand 2
+[^:]+:	256c8021 	incp	z1.h, p1.h  // note: merging predicate expected due to preceding `movprfx' at operand 2
 [^:]+:	04912461 	movprfx	z1.s, p1/m, z3.s
-[^:]+:	25ac8021 	incp	z1.s, p1  // note: merging predicate expected due to preceding `movprfx' at operand 2
+[^:]+:	25ac8021 	incp	z1.s, p1.s  // note: merging predicate expected due to preceding `movprfx' at operand 2
 [^:]+:	04d12461 	movprfx	z1.d, p1/m, z3.d
-[^:]+:	25ec8021 	incp	z1.d, p1  // note: merging predicate expected due to preceding `movprfx' at operand 2
+[^:]+:	25ec8021 	incp	z1.d, p1.d  // note: merging predicate expected due to preceding `movprfx' at operand 2
 [^:]+:	04512461 	movprfx	z1.h, p1/m, z3.h
-[^:]+:	256d8021 	decp	z1.h, p1  // note: merging predicate expected due to preceding `movprfx' at operand 2
+[^:]+:	256d8021 	decp	z1.h, p1.h  // note: merging predicate expected due to preceding `movprfx' at operand 2
 [^:]+:	04912461 	movprfx	z1.s, p1/m, z3.s
-[^:]+:	25ad8021 	decp	z1.s, p1  // note: merging predicate expected due to preceding `movprfx' at operand 2
+[^:]+:	25ad8021 	decp	z1.s, p1.s  // note: merging predicate expected due to preceding `movprfx' at operand 2
 [^:]+:	04d12461 	movprfx	z1.d, p1/m, z3.d
-[^:]+:	25ed8021 	decp	z1.d, p1  // note: merging predicate expected due to preceding `movprfx' at operand 2
+[^:]+:	25ed8021 	decp	z1.d, p1.d  // note: merging predicate expected due to preceding `movprfx' at operand 2
 [^:]+:	04512461 	movprfx	z1.h, p1/m, z3.h
-[^:]+:	25688021 	sqincp	z1.h, p1  // note: merging predicate expected due to preceding `movprfx' at operand 2
+[^:]+:	25688021 	sqincp	z1.h, p1.h  // note: merging predicate expected due to preceding `movprfx' at operand 2
 [^:]+:	04912461 	movprfx	z1.s, p1/m, z3.s
-[^:]+:	25a88021 	sqincp	z1.s, p1  // note: merging predicate expected due to preceding `movprfx' at operand 2
+[^:]+:	25a88021 	sqincp	z1.s, p1.s  // note: merging predicate expected due to preceding `movprfx' at operand 2
 [^:]+:	04d12461 	movprfx	z1.d, p1/m, z3.d
-[^:]+:	25e88021 	sqincp	z1.d, p1  // note: merging predicate expected due to preceding `movprfx' at operand 2
+[^:]+:	25e88021 	sqincp	z1.d, p1.d  // note: merging predicate expected due to preceding `movprfx' at operand 2
 [^:]+:	04512461 	movprfx	z1.h, p1/m, z3.h
-[^:]+:	256a8021 	sqdecp	z1.h, p1  // note: merging predicate expected due to preceding `movprfx' at operand 2
+[^:]+:	256a8021 	sqdecp	z1.h, p1.h  // note: merging predicate expected due to preceding `movprfx' at operand 2
 [^:]+:	04912461 	movprfx	z1.s, p1/m, z3.s
-[^:]+:	25aa8021 	sqdecp	z1.s, p1  // note: merging predicate expected due to preceding `movprfx' at operand 2
+[^:]+:	25aa8021 	sqdecp	z1.s, p1.s  // note: merging predicate expected due to preceding `movprfx' at operand 2
 [^:]+:	04d12461 	movprfx	z1.d, p1/m, z3.d
-[^:]+:	25ea8021 	sqdecp	z1.d, p1  // note: merging predicate expected due to preceding `movprfx' at operand 2
+[^:]+:	25ea8021 	sqdecp	z1.d, p1.d  // note: merging predicate expected due to preceding `movprfx' at operand 2
 [^:]+:	04112461 	movprfx	z1.b, p1/m, z3.b
 [^:]+:	05288421 	clasta	z1.b, p1, z1.b, z1.b  // note: merging predicate expected due to preceding `movprfx' at operand 2
 [^:]+:	04512461 	movprfx	z1.h, p1/m, z3.h
diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_23.l b/gas/testsuite/gas/aarch64/sve-movprfx_23.l
index ff25ee712ed3..ac491df61893 100644
--- a/gas/testsuite/gas/aarch64/sve-movprfx_23.l
+++ b/gas/testsuite/gas/aarch64/sve-movprfx_23.l
@@ -1,16 +1,16 @@
 [^:]*: Assembler messages:
-.*: Warning: merging predicate expected due to preceding `movprfx' at operand 2 -- `incp z1.h,p1'
-.*: Warning: merging predicate expected due to preceding `movprfx' at operand 2 -- `incp z1.s,p1'
-.*: Warning: merging predicate expected due to preceding `movprfx' at operand 2 -- `incp z1.d,p1'
-.*: Warning: merging predicate expected due to preceding `movprfx' at operand 2 -- `decp z1.h,p1'
-.*: Warning: merging predicate expected due to preceding `movprfx' at operand 2 -- `decp z1.s,p1'
-.*: Warning: merging predicate expected due to preceding `movprfx' at operand 2 -- `decp z1.d,p1'
-.*: Warning: merging predicate expected due to preceding `movprfx' at operand 2 -- `sqincp z1.h,p1'
-.*: Warning: merging predicate expected due to preceding `movprfx' at operand 2 -- `sqincp z1.s,p1'
-.*: Warning: merging predicate expected due to preceding `movprfx' at operand 2 -- `sqincp z1.d,p1'
-.*: Warning: merging predicate expected due to preceding `movprfx' at operand 2 -- `sqdecp z1.h,p1'
-.*: Warning: merging predicate expected due to preceding `movprfx' at operand 2 -- `sqdecp z1.s,p1'
-.*: Warning: merging predicate expected due to preceding `movprfx' at operand 2 -- `sqdecp z1.d,p1'
+.*: Warning: merging predicate expected due to preceding `movprfx' at operand 2 -- `incp z1.h,p1.h'
+.*: Warning: merging predicate expected due to preceding `movprfx' at operand 2 -- `incp z1.s,p1.s'
+.*: Warning: merging predicate expected due to preceding `movprfx' at operand 2 -- `incp z1.d,p1.d'
+.*: Warning: merging predicate expected due to preceding `movprfx' at operand 2 -- `decp z1.h,p1.h'
+.*: Warning: merging predicate expected due to preceding `movprfx' at operand 2 -- `decp z1.s,p1.s'
+.*: Warning: merging predicate expected due to preceding `movprfx' at operand 2 -- `decp z1.d,p1.d'
+.*: Warning: merging predicate expected due to preceding `movprfx' at operand 2 -- `sqincp z1.h,p1.h'
+.*: Warning: merging predicate expected due to preceding `movprfx' at operand 2 -- `sqincp z1.s,p1.s'
+.*: Warning: merging predicate expected due to preceding `movprfx' at operand 2 -- `sqincp z1.d,p1.d'
+.*: Warning: merging predicate expected due to preceding `movprfx' at operand 2 -- `sqdecp z1.h,p1.h'
+.*: Warning: merging predicate expected due to preceding `movprfx' at operand 2 -- `sqdecp z1.s,p1.s'
+.*: Warning: merging predicate expected due to preceding `movprfx' at operand 2 -- `sqdecp z1.d,p1.d'
 .*: Warning: merging predicate expected due to preceding `movprfx' at operand 2 -- `clasta z1.b,p1,z1.b,z1.b'
 .*: Warning: merging predicate expected due to preceding `movprfx' at operand 2 -- `clasta z1.h,p1,z1.h,z1.h'
 .*: Warning: merging predicate expected due to preceding `movprfx' at operand 2 -- `clasta z1.s,p1,z1.s,z1.s'
diff --git a/gas/testsuite/gas/aarch64/sve-movprfx_23.s b/gas/testsuite/gas/aarch64/sve-movprfx_23.s
index 709d81aa8a04..22697b37cf5f 100644
--- a/gas/testsuite/gas/aarch64/sve-movprfx_23.s
+++ b/gas/testsuite/gas/aarch64/sve-movprfx_23.s
@@ -9,7 +9,7 @@
    .macro test_sametwo inst
    .irp sz, h,s,d
    movprfx z1.\sz, p1/m, z3.\sz
-   \inst z1.\sz, p1
+   \inst z1.\sz, p1.\sz
    .endr
    .endm
 
diff --git a/gas/testsuite/gas/aarch64/sve.d b/gas/testsuite/gas/aarch64/sve.d
index 5d6d7562646f..502e01e3d926 100644
--- a/gas/testsuite/gas/aarch64/sve.d
+++ b/gas/testsuite/gas/aarch64/sve.d
@@ -1,6 +1,9 @@
+#source: sve.s
+#warning_output: sve.l
 #as: -march=armv8-a+sve -I$srcdir/$subdir
 #objdump: -dr
 
+
 .* file format .*
 
 Disassembly of section .*:
@@ -7205,36 +7208,66 @@ Disassembly of section .*:
 [^:]+:	0479e400 	dech	x0, pow2, mul #10
 [^:]+:	047fe400 	dech	x0, pow2, mul #16
 [^:]+:	047fe400 	dech	x0, pow2, mul #16
-[^:]+:	256d8000 	decp	z0.h, p0
-[^:]+:	256d8000 	decp	z0.h, p0
-[^:]+:	256d8001 	decp	z1.h, p0
-[^:]+:	256d8001 	decp	z1.h, p0
-[^:]+:	256d801f 	decp	z31.h, p0
-[^:]+:	256d801f 	decp	z31.h, p0
-[^:]+:	256d8040 	decp	z0.h, p2
-[^:]+:	256d8040 	decp	z0.h, p2
-[^:]+:	256d81e0 	decp	z0.h, p15
-[^:]+:	256d81e0 	decp	z0.h, p15
-[^:]+:	25ad8000 	decp	z0.s, p0
-[^:]+:	25ad8000 	decp	z0.s, p0
-[^:]+:	25ad8001 	decp	z1.s, p0
-[^:]+:	25ad8001 	decp	z1.s, p0
-[^:]+:	25ad801f 	decp	z31.s, p0
-[^:]+:	25ad801f 	decp	z31.s, p0
-[^:]+:	25ad8040 	decp	z0.s, p2
-[^:]+:	25ad8040 	decp	z0.s, p2
-[^:]+:	25ad81e0 	decp	z0.s, p15
-[^:]+:	25ad81e0 	decp	z0.s, p15
-[^:]+:	25ed8000 	decp	z0.d, p0
-[^:]+:	25ed8000 	decp	z0.d, p0
-[^:]+:	25ed8001 	decp	z1.d, p0
-[^:]+:	25ed8001 	decp	z1.d, p0
-[^:]+:	25ed801f 	decp	z31.d, p0
-[^:]+:	25ed801f 	decp	z31.d, p0
-[^:]+:	25ed8040 	decp	z0.d, p2
-[^:]+:	25ed8040 	decp	z0.d, p2
-[^:]+:	25ed81e0 	decp	z0.d, p15
-[^:]+:	25ed81e0 	decp	z0.d, p15
+[^:]+:	256d8000 	decp	z0.h, p0.h
+[^:]+:	256d8000 	decp	z0.h, p0.h
+[^:]+:	256d8001 	decp	z1.h, p0.h
+[^:]+:	256d8001 	decp	z1.h, p0.h
+[^:]+:	256d801f 	decp	z31.h, p0.h
+[^:]+:	256d801f 	decp	z31.h, p0.h
+[^:]+:	256d8040 	decp	z0.h, p2.h
+[^:]+:	256d8040 	decp	z0.h, p2.h
+[^:]+:	256d81e0 	decp	z0.h, p15.h
+[^:]+:	256d81e0 	decp	z0.h, p15.h
+[^:]+:	25ad8000 	decp	z0.s, p0.s
+[^:]+:	25ad8000 	decp	z0.s, p0.s
+[^:]+:	25ad8001 	decp	z1.s, p0.s
+[^:]+:	25ad8001 	decp	z1.s, p0.s
+[^:]+:	25ad801f 	decp	z31.s, p0.s
+[^:]+:	25ad801f 	decp	z31.s, p0.s
+[^:]+:	25ad8040 	decp	z0.s, p2.s
+[^:]+:	25ad8040 	decp	z0.s, p2.s
+[^:]+:	25ad81e0 	decp	z0.s, p15.s
+[^:]+:	25ad81e0 	decp	z0.s, p15.s
+[^:]+:	25ed8000 	decp	z0.d, p0.d
+[^:]+:	25ed8000 	decp	z0.d, p0.d
+[^:]+:	25ed8001 	decp	z1.d, p0.d
+[^:]+:	25ed8001 	decp	z1.d, p0.d
+[^:]+:	25ed801f 	decp	z31.d, p0.d
+[^:]+:	25ed801f 	decp	z31.d, p0.d
+[^:]+:	25ed8040 	decp	z0.d, p2.d
+[^:]+:	25ed8040 	decp	z0.d, p2.d
+[^:]+:	25ed81e0 	decp	z0.d, p15.d
+[^:]+:	25ed81e0 	decp	z0.d, p15.d
+[^:]+:	256d8000 	decp	z0.h, p0.h
+[^:]+:	256d8000 	decp	z0.h, p0.h
+[^:]+:	256d8001 	decp	z1.h, p0.h
+[^:]+:	256d8001 	decp	z1.h, p0.h
+[^:]+:	256d801f 	decp	z31.h, p0.h
+[^:]+:	256d801f 	decp	z31.h, p0.h
+[^:]+:	256d8040 	decp	z0.h, p2.h
+[^:]+:	256d8040 	decp	z0.h, p2.h
+[^:]+:	256d81e0 	decp	z0.h, p15.h
+[^:]+:	256d81e0 	decp	z0.h, p15.h
+[^:]+:	25ad8000 	decp	z0.s, p0.s
+[^:]+:	25ad8000 	decp	z0.s, p0.s
+[^:]+:	25ad8001 	decp	z1.s, p0.s
+[^:]+:	25ad8001 	decp	z1.s, p0.s
+[^:]+:	25ad801f 	decp	z31.s, p0.s
+[^:]+:	25ad801f 	decp	z31.s, p0.s
+[^:]+:	25ad8040 	decp	z0.s, p2.s
+[^:]+:	25ad8040 	decp	z0.s, p2.s
+[^:]+:	25ad81e0 	decp	z0.s, p15.s
+[^:]+:	25ad81e0 	decp	z0.s, p15.s
+[^:]+:	25ed8000 	decp	z0.d, p0.d
+[^:]+:	25ed8000 	decp	z0.d, p0.d
+[^:]+:	25ed8001 	decp	z1.d, p0.d
+[^:]+:	25ed8001 	decp	z1.d, p0.d
+[^:]+:	25ed801f 	decp	z31.d, p0.d
+[^:]+:	25ed801f 	decp	z31.d, p0.d
+[^:]+:	25ed8040 	decp	z0.d, p2.d
+[^:]+:	25ed8040 	decp	z0.d, p2.d
+[^:]+:	25ed81e0 	decp	z0.d, p15.d
+[^:]+:	25ed81e0 	decp	z0.d, p15.d
 [^:]+:	252d8800 	decp	x0, p0.b
 [^:]+:	252d8800 	decp	x0, p0.b
 [^:]+:	252d8801 	decp	x1, p0.b
@@ -13031,36 +13064,66 @@ Disassembly of section .*:
 [^:]+:	0479e000 	inch	x0, pow2, mul #10
 [^:]+:	047fe000 	inch	x0, pow2, mul #16
 [^:]+:	047fe000 	inch	x0, pow2, mul #16
-[^:]+:	256c8000 	incp	z0.h, p0
-[^:]+:	256c8000 	incp	z0.h, p0
-[^:]+:	256c8001 	incp	z1.h, p0
-[^:]+:	256c8001 	incp	z1.h, p0
-[^:]+:	256c801f 	incp	z31.h, p0
-[^:]+:	256c801f 	incp	z31.h, p0
-[^:]+:	256c8040 	incp	z0.h, p2
-[^:]+:	256c8040 	incp	z0.h, p2
-[^:]+:	256c81e0 	incp	z0.h, p15
-[^:]+:	256c81e0 	incp	z0.h, p15
-[^:]+:	25ac8000 	incp	z0.s, p0
-[^:]+:	25ac8000 	incp	z0.s, p0
-[^:]+:	25ac8001 	incp	z1.s, p0
-[^:]+:	25ac8001 	incp	z1.s, p0
-[^:]+:	25ac801f 	incp	z31.s, p0
-[^:]+:	25ac801f 	incp	z31.s, p0
-[^:]+:	25ac8040 	incp	z0.s, p2
-[^:]+:	25ac8040 	incp	z0.s, p2
-[^:]+:	25ac81e0 	incp	z0.s, p15
-[^:]+:	25ac81e0 	incp	z0.s, p15
-[^:]+:	25ec8000 	incp	z0.d, p0
-[^:]+:	25ec8000 	incp	z0.d, p0
-[^:]+:	25ec8001 	incp	z1.d, p0
-[^:]+:	25ec8001 	incp	z1.d, p0
-[^:]+:	25ec801f 	incp	z31.d, p0
-[^:]+:	25ec801f 	incp	z31.d, p0
-[^:]+:	25ec8040 	incp	z0.d, p2
-[^:]+:	25ec8040 	incp	z0.d, p2
-[^:]+:	25ec81e0 	incp	z0.d, p15
-[^:]+:	25ec81e0 	incp	z0.d, p15
+[^:]+:	256c8000 	incp	z0.h, p0.h
+[^:]+:	256c8000 	incp	z0.h, p0.h
+[^:]+:	256c8001 	incp	z1.h, p0.h
+[^:]+:	256c8001 	incp	z1.h, p0.h
+[^:]+:	256c801f 	incp	z31.h, p0.h
+[^:]+:	256c801f 	incp	z31.h, p0.h
+[^:]+:	256c8040 	incp	z0.h, p2.h
+[^:]+:	256c8040 	incp	z0.h, p2.h
+[^:]+:	256c81e0 	incp	z0.h, p15.h
+[^:]+:	256c81e0 	incp	z0.h, p15.h
+[^:]+:	25ac8000 	incp	z0.s, p0.s
+[^:]+:	25ac8000 	incp	z0.s, p0.s
+[^:]+:	25ac8001 	incp	z1.s, p0.s
+[^:]+:	25ac8001 	incp	z1.s, p0.s
+[^:]+:	25ac801f 	incp	z31.s, p0.s
+[^:]+:	25ac801f 	incp	z31.s, p0.s
+[^:]+:	25ac8040 	incp	z0.s, p2.s
+[^:]+:	25ac8040 	incp	z0.s, p2.s
+[^:]+:	25ac81e0 	incp	z0.s, p15.s
+[^:]+:	25ac81e0 	incp	z0.s, p15.s
+[^:]+:	25ec8000 	incp	z0.d, p0.d
+[^:]+:	25ec8000 	incp	z0.d, p0.d
+[^:]+:	25ec8001 	incp	z1.d, p0.d
+[^:]+:	25ec8001 	incp	z1.d, p0.d
+[^:]+:	25ec801f 	incp	z31.d, p0.d
+[^:]+:	25ec801f 	incp	z31.d, p0.d
+[^:]+:	25ec8040 	incp	z0.d, p2.d
+[^:]+:	25ec8040 	incp	z0.d, p2.d
+[^:]+:	25ec81e0 	incp	z0.d, p15.d
+[^:]+:	25ec81e0 	incp	z0.d, p15.d
+[^:]+:	256c8000 	incp	z0.h, p0.h
+[^:]+:	256c8000 	incp	z0.h, p0.h
+[^:]+:	256c8001 	incp	z1.h, p0.h
+[^:]+:	256c8001 	incp	z1.h, p0.h
+[^:]+:	256c801f 	incp	z31.h, p0.h
+[^:]+:	256c801f 	incp	z31.h, p0.h
+[^:]+:	256c8040 	incp	z0.h, p2.h
+[^:]+:	256c8040 	incp	z0.h, p2.h
+[^:]+:	256c81e0 	incp	z0.h, p15.h
+[^:]+:	256c81e0 	incp	z0.h, p15.h
+[^:]+:	25ac8000 	incp	z0.s, p0.s
+[^:]+:	25ac8000 	incp	z0.s, p0.s
+[^:]+:	25ac8001 	incp	z1.s, p0.s
+[^:]+:	25ac8001 	incp	z1.s, p0.s
+[^:]+:	25ac801f 	incp	z31.s, p0.s
+[^:]+:	25ac801f 	incp	z31.s, p0.s
+[^:]+:	25ac8040 	incp	z0.s, p2.s
+[^:]+:	25ac8040 	incp	z0.s, p2.s
+[^:]+:	25ac81e0 	incp	z0.s, p15.s
+[^:]+:	25ac81e0 	incp	z0.s, p15.s
+[^:]+:	25ec8000 	incp	z0.d, p0.d
+[^:]+:	25ec8000 	incp	z0.d, p0.d
+[^:]+:	25ec8001 	incp	z1.d, p0.d
+[^:]+:	25ec8001 	incp	z1.d, p0.d
+[^:]+:	25ec801f 	incp	z31.d, p0.d
+[^:]+:	25ec801f 	incp	z31.d, p0.d
+[^:]+:	25ec8040 	incp	z0.d, p2.d
+[^:]+:	25ec8040 	incp	z0.d, p2.d
+[^:]+:	25ec81e0 	incp	z0.d, p15.d
+[^:]+:	25ec81e0 	incp	z0.d, p15.d
 [^:]+:	252c8800 	incp	x0, p0.b
 [^:]+:	252c8800 	incp	x0, p0.b
 [^:]+:	252c8801 	incp	x1, p0.b
@@ -28800,36 +28863,66 @@ Disassembly of section .*:
 [^:]+:	0469f800 	sqdech	x0, w0, pow2, mul #10
 [^:]+:	046ff800 	sqdech	x0, w0, pow2, mul #16
 [^:]+:	046ff800 	sqdech	x0, w0, pow2, mul #16
-[^:]+:	256a8000 	sqdecp	z0.h, p0
-[^:]+:	256a8000 	sqdecp	z0.h, p0
-[^:]+:	256a8001 	sqdecp	z1.h, p0
-[^:]+:	256a8001 	sqdecp	z1.h, p0
-[^:]+:	256a801f 	sqdecp	z31.h, p0
-[^:]+:	256a801f 	sqdecp	z31.h, p0
-[^:]+:	256a8040 	sqdecp	z0.h, p2
-[^:]+:	256a8040 	sqdecp	z0.h, p2
-[^:]+:	256a81e0 	sqdecp	z0.h, p15
-[^:]+:	256a81e0 	sqdecp	z0.h, p15
-[^:]+:	25aa8000 	sqdecp	z0.s, p0
-[^:]+:	25aa8000 	sqdecp	z0.s, p0
-[^:]+:	25aa8001 	sqdecp	z1.s, p0
-[^:]+:	25aa8001 	sqdecp	z1.s, p0
-[^:]+:	25aa801f 	sqdecp	z31.s, p0
-[^:]+:	25aa801f 	sqdecp	z31.s, p0
-[^:]+:	25aa8040 	sqdecp	z0.s, p2
-[^:]+:	25aa8040 	sqdecp	z0.s, p2
-[^:]+:	25aa81e0 	sqdecp	z0.s, p15
-[^:]+:	25aa81e0 	sqdecp	z0.s, p15
-[^:]+:	25ea8000 	sqdecp	z0.d, p0
-[^:]+:	25ea8000 	sqdecp	z0.d, p0
-[^:]+:	25ea8001 	sqdecp	z1.d, p0
-[^:]+:	25ea8001 	sqdecp	z1.d, p0
-[^:]+:	25ea801f 	sqdecp	z31.d, p0
-[^:]+:	25ea801f 	sqdecp	z31.d, p0
-[^:]+:	25ea8040 	sqdecp	z0.d, p2
-[^:]+:	25ea8040 	sqdecp	z0.d, p2
-[^:]+:	25ea81e0 	sqdecp	z0.d, p15
-[^:]+:	25ea81e0 	sqdecp	z0.d, p15
+[^:]+:	256a8000 	sqdecp	z0.h, p0.h
+[^:]+:	256a8000 	sqdecp	z0.h, p0.h
+[^:]+:	256a8001 	sqdecp	z1.h, p0.h
+[^:]+:	256a8001 	sqdecp	z1.h, p0.h
+[^:]+:	256a801f 	sqdecp	z31.h, p0.h
+[^:]+:	256a801f 	sqdecp	z31.h, p0.h
+[^:]+:	256a8040 	sqdecp	z0.h, p2.h
+[^:]+:	256a8040 	sqdecp	z0.h, p2.h
+[^:]+:	256a81e0 	sqdecp	z0.h, p15.h
+[^:]+:	256a81e0 	sqdecp	z0.h, p15.h
+[^:]+:	25aa8000 	sqdecp	z0.s, p0.s
+[^:]+:	25aa8000 	sqdecp	z0.s, p0.s
+[^:]+:	25aa8001 	sqdecp	z1.s, p0.s
+[^:]+:	25aa8001 	sqdecp	z1.s, p0.s
+[^:]+:	25aa801f 	sqdecp	z31.s, p0.s
+[^:]+:	25aa801f 	sqdecp	z31.s, p0.s
+[^:]+:	25aa8040 	sqdecp	z0.s, p2.s
+[^:]+:	25aa8040 	sqdecp	z0.s, p2.s
+[^:]+:	25aa81e0 	sqdecp	z0.s, p15.s
+[^:]+:	25aa81e0 	sqdecp	z0.s, p15.s
+[^:]+:	25ea8000 	sqdecp	z0.d, p0.d
+[^:]+:	25ea8000 	sqdecp	z0.d, p0.d
+[^:]+:	25ea8001 	sqdecp	z1.d, p0.d
+[^:]+:	25ea8001 	sqdecp	z1.d, p0.d
+[^:]+:	25ea801f 	sqdecp	z31.d, p0.d
+[^:]+:	25ea801f 	sqdecp	z31.d, p0.d
+[^:]+:	25ea8040 	sqdecp	z0.d, p2.d
+[^:]+:	25ea8040 	sqdecp	z0.d, p2.d
+[^:]+:	25ea81e0 	sqdecp	z0.d, p15.d
+[^:]+:	25ea81e0 	sqdecp	z0.d, p15.d
+[^:]+:	256a8000 	sqdecp	z0.h, p0.h
+[^:]+:	256a8000 	sqdecp	z0.h, p0.h
+[^:]+:	256a8001 	sqdecp	z1.h, p0.h
+[^:]+:	256a8001 	sqdecp	z1.h, p0.h
+[^:]+:	256a801f 	sqdecp	z31.h, p0.h
+[^:]+:	256a801f 	sqdecp	z31.h, p0.h
+[^:]+:	256a8040 	sqdecp	z0.h, p2.h
+[^:]+:	256a8040 	sqdecp	z0.h, p2.h
+[^:]+:	256a81e0 	sqdecp	z0.h, p15.h
+[^:]+:	256a81e0 	sqdecp	z0.h, p15.h
+[^:]+:	25aa8000 	sqdecp	z0.s, p0.s
+[^:]+:	25aa8000 	sqdecp	z0.s, p0.s
+[^:]+:	25aa8001 	sqdecp	z1.s, p0.s
+[^:]+:	25aa8001 	sqdecp	z1.s, p0.s
+[^:]+:	25aa801f 	sqdecp	z31.s, p0.s
+[^:]+:	25aa801f 	sqdecp	z31.s, p0.s
+[^:]+:	25aa8040 	sqdecp	z0.s, p2.s
+[^:]+:	25aa8040 	sqdecp	z0.s, p2.s
+[^:]+:	25aa81e0 	sqdecp	z0.s, p15.s
+[^:]+:	25aa81e0 	sqdecp	z0.s, p15.s
+[^:]+:	25ea8000 	sqdecp	z0.d, p0.d
+[^:]+:	25ea8000 	sqdecp	z0.d, p0.d
+[^:]+:	25ea8001 	sqdecp	z1.d, p0.d
+[^:]+:	25ea8001 	sqdecp	z1.d, p0.d
+[^:]+:	25ea801f 	sqdecp	z31.d, p0.d
+[^:]+:	25ea801f 	sqdecp	z31.d, p0.d
+[^:]+:	25ea8040 	sqdecp	z0.d, p2.d
+[^:]+:	25ea8040 	sqdecp	z0.d, p2.d
+[^:]+:	25ea81e0 	sqdecp	z0.d, p15.d
+[^:]+:	25ea81e0 	sqdecp	z0.d, p15.d
 [^:]+:	252a8c00 	sqdecp	x0, p0.b
 [^:]+:	252a8c00 	sqdecp	x0, p0.b
 [^:]+:	252a8c01 	sqdecp	x1, p0.b
@@ -30151,36 +30244,66 @@ Disassembly of section .*:
 [^:]+:	0469f000 	sqinch	x0, w0, pow2, mul #10
 [^:]+:	046ff000 	sqinch	x0, w0, pow2, mul #16
 [^:]+:	046ff000 	sqinch	x0, w0, pow2, mul #16
-[^:]+:	25688000 	sqincp	z0.h, p0
-[^:]+:	25688000 	sqincp	z0.h, p0
-[^:]+:	25688001 	sqincp	z1.h, p0
-[^:]+:	25688001 	sqincp	z1.h, p0
-[^:]+:	2568801f 	sqincp	z31.h, p0
-[^:]+:	2568801f 	sqincp	z31.h, p0
-[^:]+:	25688040 	sqincp	z0.h, p2
-[^:]+:	25688040 	sqincp	z0.h, p2
-[^:]+:	256881e0 	sqincp	z0.h, p15
-[^:]+:	256881e0 	sqincp	z0.h, p15
-[^:]+:	25a88000 	sqincp	z0.s, p0
-[^:]+:	25a88000 	sqincp	z0.s, p0
-[^:]+:	25a88001 	sqincp	z1.s, p0
-[^:]+:	25a88001 	sqincp	z1.s, p0
-[^:]+:	25a8801f 	sqincp	z31.s, p0
-[^:]+:	25a8801f 	sqincp	z31.s, p0
-[^:]+:	25a88040 	sqincp	z0.s, p2
-[^:]+:	25a88040 	sqincp	z0.s, p2
-[^:]+:	25a881e0 	sqincp	z0.s, p15
-[^:]+:	25a881e0 	sqincp	z0.s, p15
-[^:]+:	25e88000 	sqincp	z0.d, p0
-[^:]+:	25e88000 	sqincp	z0.d, p0
-[^:]+:	25e88001 	sqincp	z1.d, p0
-[^:]+:	25e88001 	sqincp	z1.d, p0
-[^:]+:	25e8801f 	sqincp	z31.d, p0
-[^:]+:	25e8801f 	sqincp	z31.d, p0
-[^:]+:	25e88040 	sqincp	z0.d, p2
-[^:]+:	25e88040 	sqincp	z0.d, p2
-[^:]+:	25e881e0 	sqincp	z0.d, p15
-[^:]+:	25e881e0 	sqincp	z0.d, p15
+[^:]+:	25688000 	sqincp	z0.h, p0.h
+[^:]+:	25688000 	sqincp	z0.h, p0.h
+[^:]+:	25688001 	sqincp	z1.h, p0.h
+[^:]+:	25688001 	sqincp	z1.h, p0.h
+[^:]+:	2568801f 	sqincp	z31.h, p0.h
+[^:]+:	2568801f 	sqincp	z31.h, p0.h
+[^:]+:	25688040 	sqincp	z0.h, p2.h
+[^:]+:	25688040 	sqincp	z0.h, p2.h
+[^:]+:	256881e0 	sqincp	z0.h, p15.h
+[^:]+:	256881e0 	sqincp	z0.h, p15.h
+[^:]+:	25a88000 	sqincp	z0.s, p0.s
+[^:]+:	25a88000 	sqincp	z0.s, p0.s
+[^:]+:	25a88001 	sqincp	z1.s, p0.s
+[^:]+:	25a88001 	sqincp	z1.s, p0.s
+[^:]+:	25a8801f 	sqincp	z31.s, p0.s
+[^:]+:	25a8801f 	sqincp	z31.s, p0.s
+[^:]+:	25a88040 	sqincp	z0.s, p2.s
+[^:]+:	25a88040 	sqincp	z0.s, p2.s
+[^:]+:	25a881e0 	sqincp	z0.s, p15.s
+[^:]+:	25a881e0 	sqincp	z0.s, p15.s
+[^:]+:	25e88000 	sqincp	z0.d, p0.d
+[^:]+:	25e88000 	sqincp	z0.d, p0.d
+[^:]+:	25e88001 	sqincp	z1.d, p0.d
+[^:]+:	25e88001 	sqincp	z1.d, p0.d
+[^:]+:	25e8801f 	sqincp	z31.d, p0.d
+[^:]+:	25e8801f 	sqincp	z31.d, p0.d
+[^:]+:	25e88040 	sqincp	z0.d, p2.d
+[^:]+:	25e88040 	sqincp	z0.d, p2.d
+[^:]+:	25e881e0 	sqincp	z0.d, p15.d
+[^:]+:	25e881e0 	sqincp	z0.d, p15.d
+[^:]+:	25688000 	sqincp	z0.h, p0.h
+[^:]+:	25688000 	sqincp	z0.h, p0.h
+[^:]+:	25688001 	sqincp	z1.h, p0.h
+[^:]+:	25688001 	sqincp	z1.h, p0.h
+[^:]+:	2568801f 	sqincp	z31.h, p0.h
+[^:]+:	2568801f 	sqincp	z31.h, p0.h
+[^:]+:	25688040 	sqincp	z0.h, p2.h
+[^:]+:	25688040 	sqincp	z0.h, p2.h
+[^:]+:	256881e0 	sqincp	z0.h, p15.h
+[^:]+:	256881e0 	sqincp	z0.h, p15.h
+[^:]+:	25a88000 	sqincp	z0.s, p0.s
+[^:]+:	25a88000 	sqincp	z0.s, p0.s
+[^:]+:	25a88001 	sqincp	z1.s, p0.s
+[^:]+:	25a88001 	sqincp	z1.s, p0.s
+[^:]+:	25a8801f 	sqincp	z31.s, p0.s
+[^:]+:	25a8801f 	sqincp	z31.s, p0.s
+[^:]+:	25a88040 	sqincp	z0.s, p2.s
+[^:]+:	25a88040 	sqincp	z0.s, p2.s
+[^:]+:	25a881e0 	sqincp	z0.s, p15.s
+[^:]+:	25a881e0 	sqincp	z0.s, p15.s
+[^:]+:	25e88000 	sqincp	z0.d, p0.d
+[^:]+:	25e88000 	sqincp	z0.d, p0.d
+[^:]+:	25e88001 	sqincp	z1.d, p0.d
+[^:]+:	25e88001 	sqincp	z1.d, p0.d
+[^:]+:	25e8801f 	sqincp	z31.d, p0.d
+[^:]+:	25e8801f 	sqincp	z31.d, p0.d
+[^:]+:	25e88040 	sqincp	z0.d, p2.d
+[^:]+:	25e88040 	sqincp	z0.d, p2.d
+[^:]+:	25e881e0 	sqincp	z0.d, p15.d
+[^:]+:	25e881e0 	sqincp	z0.d, p15.d
 [^:]+:	25288c00 	sqincp	x0, p0.b
 [^:]+:	25288c00 	sqincp	x0, p0.b
 [^:]+:	25288c01 	sqincp	x1, p0.b
@@ -36646,36 +36769,66 @@ Disassembly of section .*:
 [^:]+:	0479fc00 	uqdech	x0, pow2, mul #10
 [^:]+:	047ffc00 	uqdech	x0, pow2, mul #16
 [^:]+:	047ffc00 	uqdech	x0, pow2, mul #16
-[^:]+:	256b8000 	uqdecp	z0.h, p0
-[^:]+:	256b8000 	uqdecp	z0.h, p0
-[^:]+:	256b8001 	uqdecp	z1.h, p0
-[^:]+:	256b8001 	uqdecp	z1.h, p0
-[^:]+:	256b801f 	uqdecp	z31.h, p0
-[^:]+:	256b801f 	uqdecp	z31.h, p0
-[^:]+:	256b8040 	uqdecp	z0.h, p2
-[^:]+:	256b8040 	uqdecp	z0.h, p2
-[^:]+:	256b81e0 	uqdecp	z0.h, p15
-[^:]+:	256b81e0 	uqdecp	z0.h, p15
-[^:]+:	25ab8000 	uqdecp	z0.s, p0
-[^:]+:	25ab8000 	uqdecp	z0.s, p0
-[^:]+:	25ab8001 	uqdecp	z1.s, p0
-[^:]+:	25ab8001 	uqdecp	z1.s, p0
-[^:]+:	25ab801f 	uqdecp	z31.s, p0
-[^:]+:	25ab801f 	uqdecp	z31.s, p0
-[^:]+:	25ab8040 	uqdecp	z0.s, p2
-[^:]+:	25ab8040 	uqdecp	z0.s, p2
-[^:]+:	25ab81e0 	uqdecp	z0.s, p15
-[^:]+:	25ab81e0 	uqdecp	z0.s, p15
-[^:]+:	25eb8000 	uqdecp	z0.d, p0
-[^:]+:	25eb8000 	uqdecp	z0.d, p0
-[^:]+:	25eb8001 	uqdecp	z1.d, p0
-[^:]+:	25eb8001 	uqdecp	z1.d, p0
-[^:]+:	25eb801f 	uqdecp	z31.d, p0
-[^:]+:	25eb801f 	uqdecp	z31.d, p0
-[^:]+:	25eb8040 	uqdecp	z0.d, p2
-[^:]+:	25eb8040 	uqdecp	z0.d, p2
-[^:]+:	25eb81e0 	uqdecp	z0.d, p15
-[^:]+:	25eb81e0 	uqdecp	z0.d, p15
+[^:]+:	256b8000 	uqdecp	z0.h, p0.h
+[^:]+:	256b8000 	uqdecp	z0.h, p0.h
+[^:]+:	256b8001 	uqdecp	z1.h, p0.h
+[^:]+:	256b8001 	uqdecp	z1.h, p0.h
+[^:]+:	256b801f 	uqdecp	z31.h, p0.h
+[^:]+:	256b801f 	uqdecp	z31.h, p0.h
+[^:]+:	256b8040 	uqdecp	z0.h, p2.h
+[^:]+:	256b8040 	uqdecp	z0.h, p2.h
+[^:]+:	256b81e0 	uqdecp	z0.h, p15.h
+[^:]+:	256b81e0 	uqdecp	z0.h, p15.h
+[^:]+:	25ab8000 	uqdecp	z0.s, p0.s
+[^:]+:	25ab8000 	uqdecp	z0.s, p0.s
+[^:]+:	25ab8001 	uqdecp	z1.s, p0.s
+[^:]+:	25ab8001 	uqdecp	z1.s, p0.s
+[^:]+:	25ab801f 	uqdecp	z31.s, p0.s
+[^:]+:	25ab801f 	uqdecp	z31.s, p0.s
+[^:]+:	25ab8040 	uqdecp	z0.s, p2.s
+[^:]+:	25ab8040 	uqdecp	z0.s, p2.s
+[^:]+:	25ab81e0 	uqdecp	z0.s, p15.s
+[^:]+:	25ab81e0 	uqdecp	z0.s, p15.s
+[^:]+:	25eb8000 	uqdecp	z0.d, p0.d
+[^:]+:	25eb8000 	uqdecp	z0.d, p0.d
+[^:]+:	25eb8001 	uqdecp	z1.d, p0.d
+[^:]+:	25eb8001 	uqdecp	z1.d, p0.d
+[^:]+:	25eb801f 	uqdecp	z31.d, p0.d
+[^:]+:	25eb801f 	uqdecp	z31.d, p0.d
+[^:]+:	25eb8040 	uqdecp	z0.d, p2.d
+[^:]+:	25eb8040 	uqdecp	z0.d, p2.d
+[^:]+:	25eb81e0 	uqdecp	z0.d, p15.d
+[^:]+:	25eb81e0 	uqdecp	z0.d, p15.d
+[^:]+:	256b8000 	uqdecp	z0.h, p0.h
+[^:]+:	256b8000 	uqdecp	z0.h, p0.h
+[^:]+:	256b8001 	uqdecp	z1.h, p0.h
+[^:]+:	256b8001 	uqdecp	z1.h, p0.h
+[^:]+:	256b801f 	uqdecp	z31.h, p0.h
+[^:]+:	256b801f 	uqdecp	z31.h, p0.h
+[^:]+:	256b8040 	uqdecp	z0.h, p2.h
+[^:]+:	256b8040 	uqdecp	z0.h, p2.h
+[^:]+:	256b81e0 	uqdecp	z0.h, p15.h
+[^:]+:	256b81e0 	uqdecp	z0.h, p15.h
+[^:]+:	25ab8000 	uqdecp	z0.s, p0.s
+[^:]+:	25ab8000 	uqdecp	z0.s, p0.s
+[^:]+:	25ab8001 	uqdecp	z1.s, p0.s
+[^:]+:	25ab8001 	uqdecp	z1.s, p0.s
+[^:]+:	25ab801f 	uqdecp	z31.s, p0.s
+[^:]+:	25ab801f 	uqdecp	z31.s, p0.s
+[^:]+:	25ab8040 	uqdecp	z0.s, p2.s
+[^:]+:	25ab8040 	uqdecp	z0.s, p2.s
+[^:]+:	25ab81e0 	uqdecp	z0.s, p15.s
+[^:]+:	25ab81e0 	uqdecp	z0.s, p15.s
+[^:]+:	25eb8000 	uqdecp	z0.d, p0.d
+[^:]+:	25eb8000 	uqdecp	z0.d, p0.d
+[^:]+:	25eb8001 	uqdecp	z1.d, p0.d
+[^:]+:	25eb8001 	uqdecp	z1.d, p0.d
+[^:]+:	25eb801f 	uqdecp	z31.d, p0.d
+[^:]+:	25eb801f 	uqdecp	z31.d, p0.d
+[^:]+:	25eb8040 	uqdecp	z0.d, p2.d
+[^:]+:	25eb8040 	uqdecp	z0.d, p2.d
+[^:]+:	25eb81e0 	uqdecp	z0.d, p15.d
+[^:]+:	25eb81e0 	uqdecp	z0.d, p15.d
 [^:]+:	252b8800 	uqdecp	w0, p0.b
 [^:]+:	252b8800 	uqdecp	w0, p0.b
 [^:]+:	252b8801 	uqdecp	w1, p0.b
@@ -37977,36 +38130,66 @@ Disassembly of section .*:
 [^:]+:	0479f400 	uqinch	x0, pow2, mul #10
 [^:]+:	047ff400 	uqinch	x0, pow2, mul #16
 [^:]+:	047ff400 	uqinch	x0, pow2, mul #16
-[^:]+:	25698000 	uqincp	z0.h, p0
-[^:]+:	25698000 	uqincp	z0.h, p0
-[^:]+:	25698001 	uqincp	z1.h, p0
-[^:]+:	25698001 	uqincp	z1.h, p0
-[^:]+:	2569801f 	uqincp	z31.h, p0
-[^:]+:	2569801f 	uqincp	z31.h, p0
-[^:]+:	25698040 	uqincp	z0.h, p2
-[^:]+:	25698040 	uqincp	z0.h, p2
-[^:]+:	256981e0 	uqincp	z0.h, p15
-[^:]+:	256981e0 	uqincp	z0.h, p15
-[^:]+:	25a98000 	uqincp	z0.s, p0
-[^:]+:	25a98000 	uqincp	z0.s, p0
-[^:]+:	25a98001 	uqincp	z1.s, p0
-[^:]+:	25a98001 	uqincp	z1.s, p0
-[^:]+:	25a9801f 	uqincp	z31.s, p0
-[^:]+:	25a9801f 	uqincp	z31.s, p0
-[^:]+:	25a98040 	uqincp	z0.s, p2
-[^:]+:	25a98040 	uqincp	z0.s, p2
-[^:]+:	25a981e0 	uqincp	z0.s, p15
-[^:]+:	25a981e0 	uqincp	z0.s, p15
-[^:]+:	25e98000 	uqincp	z0.d, p0
-[^:]+:	25e98000 	uqincp	z0.d, p0
-[^:]+:	25e98001 	uqincp	z1.d, p0
-[^:]+:	25e98001 	uqincp	z1.d, p0
-[^:]+:	25e9801f 	uqincp	z31.d, p0
-[^:]+:	25e9801f 	uqincp	z31.d, p0
-[^:]+:	25e98040 	uqincp	z0.d, p2
-[^:]+:	25e98040 	uqincp	z0.d, p2
-[^:]+:	25e981e0 	uqincp	z0.d, p15
-[^:]+:	25e981e0 	uqincp	z0.d, p15
+[^:]+:	25698000 	uqincp	z0.h, p0.h
+[^:]+:	25698000 	uqincp	z0.h, p0.h
+[^:]+:	25698001 	uqincp	z1.h, p0.h
+[^:]+:	25698001 	uqincp	z1.h, p0.h
+[^:]+:	2569801f 	uqincp	z31.h, p0.h
+[^:]+:	2569801f 	uqincp	z31.h, p0.h
+[^:]+:	25698040 	uqincp	z0.h, p2.h
+[^:]+:	25698040 	uqincp	z0.h, p2.h
+[^:]+:	256981e0 	uqincp	z0.h, p15.h
+[^:]+:	256981e0 	uqincp	z0.h, p15.h
+[^:]+:	25a98000 	uqincp	z0.s, p0.s
+[^:]+:	25a98000 	uqincp	z0.s, p0.s
+[^:]+:	25a98001 	uqincp	z1.s, p0.s
+[^:]+:	25a98001 	uqincp	z1.s, p0.s
+[^:]+:	25a9801f 	uqincp	z31.s, p0.s
+[^:]+:	25a9801f 	uqincp	z31.s, p0.s
+[^:]+:	25a98040 	uqincp	z0.s, p2.s
+[^:]+:	25a98040 	uqincp	z0.s, p2.s
+[^:]+:	25a981e0 	uqincp	z0.s, p15.s
+[^:]+:	25a981e0 	uqincp	z0.s, p15.s
+[^:]+:	25e98000 	uqincp	z0.d, p0.d
+[^:]+:	25e98000 	uqincp	z0.d, p0.d
+[^:]+:	25e98001 	uqincp	z1.d, p0.d
+[^:]+:	25e98001 	uqincp	z1.d, p0.d
+[^:]+:	25e9801f 	uqincp	z31.d, p0.d
+[^:]+:	25e9801f 	uqincp	z31.d, p0.d
+[^:]+:	25e98040 	uqincp	z0.d, p2.d
+[^:]+:	25e98040 	uqincp	z0.d, p2.d
+[^:]+:	25e981e0 	uqincp	z0.d, p15.d
+[^:]+:	25e981e0 	uqincp	z0.d, p15.d
+[^:]+:	25698000 	uqincp	z0.h, p0.h
+[^:]+:	25698000 	uqincp	z0.h, p0.h
+[^:]+:	25698001 	uqincp	z1.h, p0.h
+[^:]+:	25698001 	uqincp	z1.h, p0.h
+[^:]+:	2569801f 	uqincp	z31.h, p0.h
+[^:]+:	2569801f 	uqincp	z31.h, p0.h
+[^:]+:	25698040 	uqincp	z0.h, p2.h
+[^:]+:	25698040 	uqincp	z0.h, p2.h
+[^:]+:	256981e0 	uqincp	z0.h, p15.h
+[^:]+:	256981e0 	uqincp	z0.h, p15.h
+[^:]+:	25a98000 	uqincp	z0.s, p0.s
+[^:]+:	25a98000 	uqincp	z0.s, p0.s
+[^:]+:	25a98001 	uqincp	z1.s, p0.s
+[^:]+:	25a98001 	uqincp	z1.s, p0.s
+[^:]+:	25a9801f 	uqincp	z31.s, p0.s
+[^:]+:	25a9801f 	uqincp	z31.s, p0.s
+[^:]+:	25a98040 	uqincp	z0.s, p2.s
+[^:]+:	25a98040 	uqincp	z0.s, p2.s
+[^:]+:	25a981e0 	uqincp	z0.s, p15.s
+[^:]+:	25a981e0 	uqincp	z0.s, p15.s
+[^:]+:	25e98000 	uqincp	z0.d, p0.d
+[^:]+:	25e98000 	uqincp	z0.d, p0.d
+[^:]+:	25e98001 	uqincp	z1.d, p0.d
+[^:]+:	25e98001 	uqincp	z1.d, p0.d
+[^:]+:	25e9801f 	uqincp	z31.d, p0.d
+[^:]+:	25e9801f 	uqincp	z31.d, p0.d
+[^:]+:	25e98040 	uqincp	z0.d, p2.d
+[^:]+:	25e98040 	uqincp	z0.d, p2.d
+[^:]+:	25e981e0 	uqincp	z0.d, p15.d
+[^:]+:	25e981e0 	uqincp	z0.d, p15.d
 [^:]+:	25298800 	uqincp	w0, p0.b
 [^:]+:	25298800 	uqincp	w0, p0.b
 [^:]+:	25298801 	uqincp	w1, p0.b
diff --git a/gas/testsuite/gas/aarch64/sve.l b/gas/testsuite/gas/aarch64/sve.l
new file mode 100644
index 000000000000..802a94a1e0b5
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve.l
@@ -0,0 +1,181 @@
+[^:]*: Assembler messages:
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `decp z0.h,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `decp Z0.H,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `decp z1.h,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `decp Z1.H,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `decp z31.h,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `decp Z31.H,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `decp z0.h,p2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `decp Z0.H,P2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `decp z0.h,p15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `decp Z0.H,P15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `decp z0.s,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `decp Z0.S,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `decp z1.s,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `decp Z1.S,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `decp z31.s,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `decp Z31.S,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `decp z0.s,p2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `decp Z0.S,P2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `decp z0.s,p15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `decp Z0.S,P15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `decp z0.d,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `decp Z0.D,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `decp z1.d,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `decp Z1.D,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `decp z31.d,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `decp Z31.D,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `decp z0.d,p2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `decp Z0.D,P2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `decp z0.d,p15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `decp Z0.D,P15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `incp z0.h,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `incp Z0.H,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `incp z1.h,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `incp Z1.H,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `incp z31.h,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `incp Z31.H,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `incp z0.h,p2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `incp Z0.H,P2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `incp z0.h,p15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `incp Z0.H,P15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `incp z0.s,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `incp Z0.S,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `incp z1.s,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `incp Z1.S,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `incp z31.s,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `incp Z31.S,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `incp z0.s,p2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `incp Z0.S,P2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `incp z0.s,p15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `incp Z0.S,P15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `incp z0.d,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `incp Z0.D,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `incp z1.d,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `incp Z1.D,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `incp z31.d,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `incp Z31.D,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `incp z0.d,p2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `incp Z0.D,P2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `incp z0.d,p15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `incp Z0.D,P15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqdecp z0.h,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqdecp Z0.H,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqdecp z1.h,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqdecp Z1.H,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqdecp z31.h,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqdecp Z31.H,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqdecp z0.h,p2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqdecp Z0.H,P2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqdecp z0.h,p15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqdecp Z0.H,P15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqdecp z0.s,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqdecp Z0.S,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqdecp z1.s,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqdecp Z1.S,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqdecp z31.s,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqdecp Z31.S,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqdecp z0.s,p2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqdecp Z0.S,P2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqdecp z0.s,p15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqdecp Z0.S,P15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqdecp z0.d,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqdecp Z0.D,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqdecp z1.d,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqdecp Z1.D,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqdecp z31.d,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqdecp Z31.D,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqdecp z0.d,p2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqdecp Z0.D,P2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqdecp z0.d,p15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqdecp Z0.D,P15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqincp z0.h,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqincp Z0.H,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqincp z1.h,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqincp Z1.H,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqincp z31.h,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqincp Z31.H,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqincp z0.h,p2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqincp Z0.H,P2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqincp z0.h,p15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqincp Z0.H,P15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqincp z0.s,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqincp Z0.S,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqincp z1.s,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqincp Z1.S,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqincp z31.s,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqincp Z31.S,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqincp z0.s,p2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqincp Z0.S,P2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqincp z0.s,p15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqincp Z0.S,P15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqincp z0.d,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqincp Z0.D,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqincp z1.d,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqincp Z1.D,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqincp z31.d,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqincp Z31.D,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqincp z0.d,p2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqincp Z0.D,P2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqincp z0.d,p15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `sqincp Z0.D,P15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqdecp z0.h,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqdecp Z0.H,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqdecp z1.h,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqdecp Z1.H,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqdecp z31.h,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqdecp Z31.H,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqdecp z0.h,p2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqdecp Z0.H,P2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqdecp z0.h,p15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqdecp Z0.H,P15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqdecp z0.s,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqdecp Z0.S,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqdecp z1.s,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqdecp Z1.S,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqdecp z31.s,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqdecp Z31.S,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqdecp z0.s,p2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqdecp Z0.S,P2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqdecp z0.s,p15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqdecp Z0.S,P15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqdecp z0.d,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqdecp Z0.D,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqdecp z1.d,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqdecp Z1.D,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqdecp z31.d,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqdecp Z31.D,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqdecp z0.d,p2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqdecp Z0.D,P2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqdecp z0.d,p15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqdecp Z0.D,P15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqincp z0.h,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqincp Z0.H,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqincp z1.h,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqincp Z1.H,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqincp z31.h,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqincp Z31.H,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqincp z0.h,p2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqincp Z0.H,P2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqincp z0.h,p15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqincp Z0.H,P15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqincp z0.s,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqincp Z0.S,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqincp z1.s,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqincp Z1.S,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqincp z31.s,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqincp Z31.S,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqincp z0.s,p2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqincp Z0.S,P2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqincp z0.s,p15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqincp Z0.S,P15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqincp z0.d,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqincp Z0.D,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqincp z1.d,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqincp Z1.D,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqincp z31.d,p0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqincp Z31.D,P0'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqincp z0.d,p2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqincp Z0.D,P2'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqincp z0.d,p15'
+.*: Warning: omitting predicate size specifier is deprecated and will be prohibited in future -- `uqincp Z0.D,P15'
diff --git a/gas/testsuite/gas/aarch64/sve.s b/gas/testsuite/gas/aarch64/sve.s
index f3ca5e886733..11cf4cc7fc00 100644
--- a/gas/testsuite/gas/aarch64/sve.s
+++ b/gas/testsuite/gas/aarch64/sve.s
@@ -7244,6 +7244,36 @@
 	DECP      Z0.D, P2
 	decp      z0.d, p15
 	DECP      Z0.D, P15
+	decp      z0.h, p0.h
+	DECP      Z0.H, P0.H
+	decp      z1.h, p0.h
+	DECP      Z1.H, P0.H
+	decp      z31.h, p0.h
+	DECP      Z31.H, P0.H
+	decp      z0.h, p2.h
+	DECP      Z0.H, P2.H
+	decp      z0.h, p15.h
+	DECP      Z0.H, P15.H
+	decp      z0.s, p0.s
+	DECP      Z0.S, P0.S
+	decp      z1.s, p0.s
+	DECP      Z1.S, P0.S
+	decp      z31.s, p0.s
+	DECP      Z31.S, P0.S
+	decp      z0.s, p2.s
+	DECP      Z0.S, P2.S
+	decp      z0.s, p15.s
+	DECP      Z0.S, P15.S
+	decp      z0.d, p0.d
+	DECP      Z0.D, P0.D
+	decp      z1.d, p0.d
+	DECP      Z1.D, P0.D
+	decp      z31.d, p0.d
+	DECP      Z31.D, P0.D
+	decp      z0.d, p2.d
+	DECP      Z0.D, P2.D
+	decp      z0.d, p15.d
+	DECP      Z0.D, P15.D
 	decp      x0, p0.b
 	DECP      X0, P0.B
 	decp      x1, p0.b
@@ -13070,6 +13100,36 @@
 	INCP      Z0.D, P2
 	incp      z0.d, p15
 	INCP      Z0.D, P15
+	incp      z0.h, p0.h
+	INCP      Z0.H, P0.H
+	incp      z1.h, p0.h
+	INCP      Z1.H, P0.H
+	incp      z31.h, p0.h
+	INCP      Z31.H, P0.H
+	incp      z0.h, p2.h
+	INCP      Z0.H, P2.H
+	incp      z0.h, p15.h
+	INCP      Z0.H, P15.H
+	incp      z0.s, p0.s
+	INCP      Z0.S, P0.S
+	incp      z1.s, p0.s
+	INCP      Z1.S, P0.S
+	incp      z31.s, p0.s
+	INCP      Z31.S, P0.S
+	incp      z0.s, p2.s
+	INCP      Z0.S, P2.S
+	incp      z0.s, p15.s
+	INCP      Z0.S, P15.S
+	incp      z0.d, p0.d
+	INCP      Z0.D, P0.D
+	incp      z1.d, p0.d
+	INCP      Z1.D, P0.D
+	incp      z31.d, p0.d
+	INCP      Z31.D, P0.D
+	incp      z0.d, p2.d
+	INCP      Z0.D, P2.D
+	incp      z0.d, p15.d
+	INCP      Z0.D, P15.D
 	incp      x0, p0.b
 	INCP      X0, P0.B
 	incp      x1, p0.b
@@ -28839,6 +28899,36 @@
 	SQDECP    Z0.D, P2
 	sqdecp    z0.d, p15
 	SQDECP    Z0.D, P15
+	sqdecp    z0.h, p0.h
+	SQDECP    Z0.H, P0.H
+	sqdecp    z1.h, p0.h
+	SQDECP    Z1.H, P0.H
+	sqdecp    z31.h, p0.h
+	SQDECP    Z31.H, P0.H
+	sqdecp    z0.h, p2.h
+	SQDECP    Z0.H, P2.H
+	sqdecp    z0.h, p15.h
+	SQDECP    Z0.H, P15.H
+	sqdecp    z0.s, p0.s
+	SQDECP    Z0.S, P0.S
+	sqdecp    z1.s, p0.s
+	SQDECP    Z1.S, P0.S
+	sqdecp    z31.s, p0.s
+	SQDECP    Z31.S, P0.S
+	sqdecp    z0.s, p2.s
+	SQDECP    Z0.S, P2.S
+	sqdecp    z0.s, p15.s
+	SQDECP    Z0.S, P15.S
+	sqdecp    z0.d, p0.d
+	SQDECP    Z0.D, P0.D
+	sqdecp    z1.d, p0.d
+	SQDECP    Z1.D, P0.D
+	sqdecp    z31.d, p0.d
+	SQDECP    Z31.D, P0.D
+	sqdecp    z0.d, p2.d
+	SQDECP    Z0.D, P2.D
+	sqdecp    z0.d, p15.d
+	SQDECP    Z0.D, P15.D
 	sqdecp    x0, p0.b
 	SQDECP    X0, P0.B
 	sqdecp    x1, p0.b
@@ -30190,6 +30280,37 @@
 	SQINCP    Z0.D, P2
 	sqincp    z0.d, p15
 	SQINCP    Z0.D, P15
+	sqincp    z0.h, p0.h
+	SQINCP    Z0.H, P0.H
+	sqincp    z1.h, p0.h
+	SQINCP    Z1.H, P0.H
+	sqincp    z31.h, p0.h
+	SQINCP    Z31.H, P0.H
+	sqincp    z0.h, p2.h
+	SQINCP    Z0.H, P2.H
+	sqincp    z0.h, p15.h
+	SQINCP    Z0.H, P15.H
+	sqincp    z0.s, p0.s
+	SQINCP    Z0.S, P0.S
+	sqincp    z1.s, p0.s
+	SQINCP    Z1.S, P0.S
+	sqincp    z31.s, p0.s
+	SQINCP    Z31.S, P0.S
+	sqincp    z0.s, p2.s
+	SQINCP    Z0.S, P2.S
+	sqincp    z0.s, p15.s
+	SQINCP    Z0.S, P15.S
+	sqincp    z0.d, p0.d
+	SQINCP    Z0.D, P0.D
+	sqincp    z1.d, p0.d
+	SQINCP    Z1.D, P0.D
+	sqincp    z31.d, p0.d
+	SQINCP    Z31.D, P0.D
+	sqincp    z0.d, p2.d
+	SQINCP    Z0.D, P2.D
+	sqincp    z0.d, p15.d
+	SQINCP    Z0.D, P15.D
+
 	sqincp    x0, p0.b
 	SQINCP    X0, P0.B
 	sqincp    x1, p0.b
@@ -36685,6 +36806,36 @@
 	UQDECP    Z0.D, P2
 	uqdecp    z0.d, p15
 	UQDECP    Z0.D, P15
+	uqdecp    z0.h, p0.h
+	UQDECP    Z0.H, P0.H
+	uqdecp    z1.h, p0.h
+	UQDECP    Z1.H, P0.H
+	uqdecp    z31.h, p0.h
+	UQDECP    Z31.H, P0.H
+	uqdecp    z0.h, p2.h
+	UQDECP    Z0.H, P2.H
+	uqdecp    z0.h, p15.h
+	UQDECP    Z0.H, P15.H
+	uqdecp    z0.s, p0.s
+	UQDECP    Z0.S, P0.S
+	uqdecp    z1.s, p0.s
+	UQDECP    Z1.S, P0.S
+	uqdecp    z31.s, p0.s
+	UQDECP    Z31.S, P0.S
+	uqdecp    z0.s, p2.s
+	UQDECP    Z0.S, P2.S
+	uqdecp    z0.s, p15.s
+	UQDECP    Z0.S, P15.S
+	uqdecp    z0.d, p0.d
+	UQDECP    Z0.D, P0.D
+	uqdecp    z1.d, p0.d
+	UQDECP    Z1.D, P0.D
+	uqdecp    z31.d, p0.d
+	UQDECP    Z31.D, P0.D
+	uqdecp    z0.d, p2.d
+	UQDECP    Z0.D, P2.D
+	uqdecp    z0.d, p15.d
+	UQDECP    Z0.D, P15.D
 	uqdecp    w0, p0.b
 	UQDECP    W0, P0.B
 	uqdecp    w1, p0.b
@@ -38016,6 +38167,36 @@
 	UQINCP    Z0.D, P2
 	uqincp    z0.d, p15
 	UQINCP    Z0.D, P15
+	uqincp    z0.h, p0.h
+	UQINCP    Z0.H, P0.H
+	uqincp    z1.h, p0.h
+	UQINCP    Z1.H, P0.H
+	uqincp    z31.h, p0.h
+	UQINCP    Z31.H, P0.H
+	uqincp    z0.h, p2.h
+	UQINCP    Z0.H, P2.H
+	uqincp    z0.h, p15.h
+	UQINCP    Z0.H, P15.H
+	uqincp    z0.s, p0.s
+	UQINCP    Z0.S, P0.S
+	uqincp    z1.s, p0.s
+	UQINCP    Z1.S, P0.S
+	uqincp    z31.s, p0.s
+	UQINCP    Z31.S, P0.S
+	uqincp    z0.s, p2.s
+	UQINCP    Z0.S, P2.S
+	uqincp    z0.s, p15.s
+	UQINCP    Z0.S, P15.S
+	uqincp    z0.d, p0.d
+	UQINCP    Z0.D, P0.D
+	uqincp    z1.d, p0.d
+	UQINCP    Z1.D, P0.D
+	uqincp    z31.d, p0.d
+	UQINCP    Z31.D, P0.D
+	uqincp    z0.d, p2.d
+	UQINCP    Z0.D, P2.D
+	uqincp    z0.d, p15.d
+	UQINCP    Z0.D, P15.D
 	uqincp    w0, p0.b
 	UQINCP    W0, P0.B
 	uqincp    w1, p0.b
diff --git a/opcodes/aarch64-tbl.h b/opcodes/aarch64-tbl.h
index cb039d63eba3..794e2d24f528 100644
--- a/opcodes/aarch64-tbl.h
+++ b/opcodes/aarch64-tbl.h
@@ -4200,6 +4200,7 @@ const struct aarch64_opcode aarch64_opcode_table[] =
   _SVE_INSN ("decd", 0x04f0e400, 0xfff0fc00, sve_misc, 0, OP2 (Rd, SVE_PATTERN_SCALED), OP_SVE_XU, F_OPD1_OPT | F_DEFAULT(31), 0),
   _SVE_INSNC ("dech", 0x0470c400, 0xfff0fc00, sve_misc, 0, OP2 (SVE_Zd, SVE_PATTERN_SCALED), OP_SVE_HU, F_OPD1_OPT | F_DEFAULT(31), C_SCAN_MOVPRFX, 0),
   _SVE_INSN ("dech", 0x0470e400, 0xfff0fc00, sve_misc, 0, OP2 (Rd, SVE_PATTERN_SCALED), OP_SVE_XU, F_OPD1_OPT | F_DEFAULT(31), 0),
+  _SVE_INSNC ("decp", 0x252d8000, 0xff3ffe00, sve_size_hsd, 0, OP2 (SVE_Zd, SVE_Pg4_5), OP_SVE_VV_HSD, 0, C_SCAN_MOVPRFX, 0),
   _SVE_INSNC ("decp", 0x252d8000, 0xff3ffe00, sve_size_hsd, 0, OP2 (SVE_Zd, SVE_Pg4_5), OP_SVE_VU_HSD, 0, C_SCAN_MOVPRFX, 0),
   _SVE_INSN ("decp", 0x252d8800, 0xff3ffe00, sve_size_bhsd, 0, OP2 (Rd, SVE_Pg4_5), OP_SVE_XV_BHSD, 0, 0),
   _SVE_INSNC ("decw", 0x04b0c400, 0xfff0fc00, sve_misc, 0, OP2 (SVE_Zd, SVE_PATTERN_SCALED), OP_SVE_SU, F_OPD1_OPT | F_DEFAULT(31), C_SCAN_MOVPRFX, 0),
@@ -4325,6 +4326,7 @@ const struct aarch64_opcode aarch64_opcode_table[] =
   _SVE_INSN ("incd", 0x04f0e000, 0xfff0fc00, sve_misc, 0, OP2 (Rd, SVE_PATTERN_SCALED), OP_SVE_XU, F_OPD1_OPT | F_DEFAULT(31), 0),
   _SVE_INSNC ("inch", 0x0470c000, 0xfff0fc00, sve_misc, 0, OP2 (SVE_Zd, SVE_PATTERN_SCALED), OP_SVE_HU, F_OPD1_OPT | F_DEFAULT(31), C_SCAN_MOVPRFX, 0),
   _SVE_INSN ("inch", 0x0470e000, 0xfff0fc00, sve_misc, 0, OP2 (Rd, SVE_PATTERN_SCALED), OP_SVE_XU, F_OPD1_OPT | F_DEFAULT(31), 0),
+  _SVE_INSNC ("incp", 0x252c8000, 0xff3ffe00, sve_size_hsd, 0, OP2 (SVE_Zd, SVE_Pg4_5), OP_SVE_VV_HSD, 0, C_SCAN_MOVPRFX, 0),
   _SVE_INSNC ("incp", 0x252c8000, 0xff3ffe00, sve_size_hsd, 0, OP2 (SVE_Zd, SVE_Pg4_5), OP_SVE_VU_HSD, 0, C_SCAN_MOVPRFX, 0),
   _SVE_INSN ("incp", 0x252c8800, 0xff3ffe00, sve_size_bhsd, 0, OP2 (Rd, SVE_Pg4_5), OP_SVE_XV_BHSD, 0, 0),
   _SVE_INSNC ("incw", 0x04b0c000, 0xfff0fc00, sve_misc, 0, OP2 (SVE_Zd, SVE_PATTERN_SCALED), OP_SVE_SU, F_OPD1_OPT | F_DEFAULT(31), C_SCAN_MOVPRFX, 0),
@@ -4688,6 +4690,7 @@ const struct aarch64_opcode aarch64_opcode_table[] =
   _SVE_INSNC ("sqdech", 0x0460c800, 0xfff0fc00, sve_misc, 0, OP2 (SVE_Zd, SVE_PATTERN_SCALED), OP_SVE_HU, F_OPD1_OPT | F_DEFAULT(31), C_SCAN_MOVPRFX, 0),
   _SVE_INSN ("sqdech", 0x0470f800, 0xfff0fc00, sve_misc, 0, OP2 (Rd, SVE_PATTERN_SCALED), OP_SVE_XU, F_OPD1_OPT | F_DEFAULT(31), 0),
   _SVE_INSN ("sqdech", 0x0460f800, 0xfff0fc00, sve_misc, 0, OP3 (Rd, Rd, SVE_PATTERN_SCALED), OP_SVE_XWU, F_OPD2_OPT | F_DEFAULT(31), 1),
+  _SVE_INSNC ("sqdecp", 0x252a8000, 0xff3ffe00, sve_size_hsd, 0, OP2 (SVE_Zd, SVE_Pg4_5), OP_SVE_VV_HSD, 0, C_SCAN_MOVPRFX, 0),
   _SVE_INSNC ("sqdecp", 0x252a8000, 0xff3ffe00, sve_size_hsd, 0, OP2 (SVE_Zd, SVE_Pg4_5), OP_SVE_VU_HSD, 0, C_SCAN_MOVPRFX, 0),
   _SVE_INSN ("sqdecp", 0x252a8c00, 0xff3ffe00, sve_size_bhsd, 0, OP2 (Rd, SVE_Pg4_5), OP_SVE_XV_BHSD, 0, 0),
   _SVE_INSN ("sqdecp", 0x252a8800, 0xff3ffe00, sve_size_bhsd, 0, OP3 (Rd, SVE_Pg4_5, Rd), OP_SVE_XVW_BHSD, 0, 2),
@@ -4702,6 +4705,7 @@ const struct aarch64_opcode aarch64_opcode_table[] =
   _SVE_INSNC ("sqinch", 0x0460c000, 0xfff0fc00, sve_misc, 0, OP2 (SVE_Zd, SVE_PATTERN_SCALED), OP_SVE_HU, F_OPD1_OPT | F_DEFAULT(31), C_SCAN_MOVPRFX, 0),
   _SVE_INSN ("sqinch", 0x0470f000, 0xfff0fc00, sve_misc, 0, OP2 (Rd, SVE_PATTERN_SCALED), OP_SVE_XU, F_OPD1_OPT | F_DEFAULT(31), 0),
   _SVE_INSN ("sqinch", 0x0460f000, 0xfff0fc00, sve_misc, 0, OP3 (Rd, Rd, SVE_PATTERN_SCALED), OP_SVE_XWU, F_OPD2_OPT | F_DEFAULT(31), 1),
+  _SVE_INSNC ("sqincp", 0x25288000, 0xff3ffe00, sve_size_hsd, 0, OP2 (SVE_Zd, SVE_Pg4_5), OP_SVE_VV_HSD, 0, C_SCAN_MOVPRFX, 0),
   _SVE_INSNC ("sqincp", 0x25288000, 0xff3ffe00, sve_size_hsd, 0, OP2 (SVE_Zd, SVE_Pg4_5), OP_SVE_VU_HSD, 0, C_SCAN_MOVPRFX, 0),
   _SVE_INSN ("sqincp", 0x25288c00, 0xff3ffe00, sve_size_bhsd, 0, OP2 (Rd, SVE_Pg4_5), OP_SVE_XV_BHSD, 0, 0),
   _SVE_INSN ("sqincp", 0x25288800, 0xff3ffe00, sve_size_bhsd, 0, OP3 (Rd, SVE_Pg4_5, Rd), OP_SVE_XVW_BHSD, 0, 2),
@@ -4836,6 +4840,7 @@ const struct aarch64_opcode aarch64_opcode_table[] =
   _SVE_INSNC ("uqdech", 0x0460cc00, 0xfff0fc00, sve_misc, 0, OP2 (SVE_Zd, SVE_PATTERN_SCALED), OP_SVE_HU, F_OPD1_OPT | F_DEFAULT(31), C_SCAN_MOVPRFX, 0),
   _SVE_INSN ("uqdech", 0x0460fc00, 0xfff0fc00, sve_misc, 0, OP2 (Rd, SVE_PATTERN_SCALED), OP_SVE_WU, F_OPD1_OPT | F_DEFAULT(31), 0),
   _SVE_INSN ("uqdech", 0x0470fc00, 0xfff0fc00, sve_misc, 0, OP2 (Rd, SVE_PATTERN_SCALED), OP_SVE_XU, F_OPD1_OPT | F_DEFAULT(31), 0),
+  _SVE_INSNC ("uqdecp", 0x252b8000, 0xff3ffe00, sve_size_hsd, 0, OP2 (SVE_Zd, SVE_Pg4_5), OP_SVE_VV_HSD, 0, C_SCAN_MOVPRFX, 0),
   _SVE_INSNC ("uqdecp", 0x252b8000, 0xff3ffe00, sve_size_hsd, 0, OP2 (SVE_Zd, SVE_Pg4_5), OP_SVE_VU_HSD, 0, C_SCAN_MOVPRFX, 0),
   _SVE_INSN ("uqdecp", 0x252b8800, 0xff3ffe00, sve_size_bhsd, 0, OP2 (Rd, SVE_Pg4_5), OP_SVE_WV_BHSD, 0, 0),
   _SVE_INSN ("uqdecp", 0x252b8c00, 0xff3ffe00, sve_size_bhsd, 0, OP2 (Rd, SVE_Pg4_5), OP_SVE_XV_BHSD, 0, 0),
@@ -4850,6 +4855,7 @@ const struct aarch64_opcode aarch64_opcode_table[] =
   _SVE_INSNC ("uqinch", 0x0460c400, 0xfff0fc00, sve_misc, 0, OP2 (SVE_Zd, SVE_PATTERN_SCALED), OP_SVE_HU, F_OPD1_OPT | F_DEFAULT(31), C_SCAN_MOVPRFX, 0),
   _SVE_INSN ("uqinch", 0x0460f400, 0xfff0fc00, sve_misc, 0, OP2 (Rd, SVE_PATTERN_SCALED), OP_SVE_WU, F_OPD1_OPT | F_DEFAULT(31), 0),
   _SVE_INSN ("uqinch", 0x0470f400, 0xfff0fc00, sve_misc, 0, OP2 (Rd, SVE_PATTERN_SCALED), OP_SVE_XU, F_OPD1_OPT | F_DEFAULT(31), 0),
+  _SVE_INSNC ("uqincp", 0x25298000, 0xff3ffe00, sve_size_hsd, 0, OP2 (SVE_Zd, SVE_Pg4_5), OP_SVE_VV_HSD, 0, C_SCAN_MOVPRFX, 0),
   _SVE_INSNC ("uqincp", 0x25298000, 0xff3ffe00, sve_size_hsd, 0, OP2 (SVE_Zd, SVE_Pg4_5), OP_SVE_VU_HSD, 0, C_SCAN_MOVPRFX, 0),
   _SVE_INSN ("uqincp", 0x25298800, 0xff3ffe00, sve_size_bhsd, 0, OP2 (Rd, SVE_Pg4_5), OP_SVE_WV_BHSD, 0, 0),
   _SVE_INSN ("uqincp", 0x25298c00, 0xff3ffe00, sve_size_bhsd, 0, OP2 (Rd, SVE_Pg4_5), OP_SVE_XV_BHSD, 0, 0),
-- 
2.33.0


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

end of thread, other threads:[~2022-10-18  5:57 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-16  0:53 [PATCH RESEND v2] Aarch64: Allow explicit size specifier for predicate operand of {sq, uq, }{incp, decp} Shaokun Zhang
2022-02-21 13:13 ` Jan Beulich
2022-03-02  7:36   ` Shaokun Zhang
2022-03-10  9:38     ` Shaokun Zhang
2022-03-10 10:38       ` Jan Beulich
2022-03-10 11:33         ` Shaokun Zhang
2022-03-10 11:50           ` Jan Beulich
2022-03-10 12:24             ` Shaokun Zhang
2022-03-10 12:27 ` Shaokun Zhang
2022-09-12  8:17 ` Richard Sandiford
2022-09-12  8:27   ` Jan Beulich
2022-09-12  9:38     ` Richard Sandiford
2022-09-28  2:19   ` dongbo (E)
2022-09-30 14:54     ` Richard Sandiford
2022-10-09  1:31       ` dongbo (E)
2022-10-10 10:25         ` Richard Sandiford
2022-10-11  2:19           ` dongbo (E)
2022-10-17  9:33             ` Richard Sandiford
2022-10-18  5:57               ` dongbo (E)

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