[PATCH] AArch64: Add FEAT_SVE2p3 and FEAT_SME2p3 instructions.

Jan Beulich jbeulich@suse.com
Mon Nov 24 07:35:55 GMT 2025


On 28.10.2025 18:38, Sivan Shani wrote:
> This patch includes:
> 
> - Flags for the FEAT_SVE2p3 and FEAT_SME2p3 features.
> - Instructions:
>   - ADDQP
>   - ADDSUBP
>   - FCVTZSN
>   - FCVTZUN
>   - LUTI6 16-bit
>   - LUTI6 8-bit
>   - SABAL
>   - SCVTF
>   - SCVTFLT
>   - SDOT vectors
>   - SDOT indexed
>   - SQRSHRN
>   - SQRSHRUN
>   - SQSHRN
>   - SQSHRUN
>   - SUBP
>   - UABAL
>   - UCVTF
>   - UCVTFLT
>   - UDOT vectors
>   - UDOT indexed
>   - UQRSHRN
>   - UQSHRN
>   - LUTI6 vector
>   - LUTI6 table, four registers
>   - LUTI6 table, single, 8-bit
> - Opernads:
>   - `OPND_SME_ZmxN_INDEX_22`: an operand represents a list of vector registers with an index.
>   - `OPND_SME_Zn3_UNTYPED`: an operand represents an untyped list of vector registers.
> ---
>  gas/config/tc-aarch64.c                       |  51 +-
>  gas/doc/c-aarch64.texi                        |   4 +
>  gas/testsuite/gas/aarch64/addqp.d             |  24 +
>  gas/testsuite/gas/aarch64/addqp.s             |  16 +
>  gas/testsuite/gas/aarch64/addsubp.d           |  24 +
>  gas/testsuite/gas/aarch64/addsubp.s           |  16 +
>  gas/testsuite/gas/aarch64/fcvtzsn.d           |  17 +
>  gas/testsuite/gas/aarch64/fcvtzsn.s           |   9 +
>  gas/testsuite/gas/aarch64/fcvtzun.d           |  17 +
>  gas/testsuite/gas/aarch64/fcvtzun.s           |   9 +
>  gas/testsuite/gas/aarch64/illegal-memtag.l    |   2 +-
>  gas/testsuite/gas/aarch64/luti6_16.d          |  16 +
>  gas/testsuite/gas/aarch64/luti6_16.s          |   8 +
>  gas/testsuite/gas/aarch64/luti6_8.d           |  12 +
>  gas/testsuite/gas/aarch64/luti6_8.s           |   4 +
>  gas/testsuite/gas/aarch64/luti6_table8.d      |  17 +
>  gas/testsuite/gas/aarch64/luti6_table8.s      |   9 +
>  gas/testsuite/gas/aarch64/luti6_vector16.d    |  21 +
>  gas/testsuite/gas/aarch64/luti6_vector16.s    |  13 +
>  gas/testsuite/gas/aarch64/luti6_vector16s4.d  |  21 +
>  gas/testsuite/gas/aarch64/luti6_vector16s4.s  |  13 +
>  gas/testsuite/gas/aarch64/sabal.d             |  20 +
>  gas/testsuite/gas/aarch64/sabal.s             |  12 +
>  gas/testsuite/gas/aarch64/scvtf.d             |  17 +
>  gas/testsuite/gas/aarch64/scvtf.s             |   9 +
>  gas/testsuite/gas/aarch64/scvtflt.d           |  17 +
>  gas/testsuite/gas/aarch64/scvtflt.s           |   9 +
>  gas/testsuite/gas/aarch64/sdot.d              |  64 +++
>  gas/testsuite/gas/aarch64/sdot.s              |  56 +++
>  gas/testsuite/gas/aarch64/sqrshrn.d           |  32 ++
>  gas/testsuite/gas/aarch64/sqrshrn.s           |  24 +
>  gas/testsuite/gas/aarch64/sqrshrn_imm.d       |  80 +++
>  gas/testsuite/gas/aarch64/sqrshrn_imm.s       |  72 +++

Isn't there an 'r' too many in both of these two files' names? The insn
being checked is ...

> --- /dev/null
> +++ b/gas/testsuite/gas/aarch64/sqrshrn_imm.d
> @@ -0,0 +1,80 @@
> +#as: -march=armv8-a+sme2p3
> +#objdump: -dr
> +
> +.*:     file format .*
> +
> +Disassembly of section \.text:
> +
> +0+ <\.text>:
> + *[0-9a-f]+:[ \t]+45a80000[ \t]+sqshrn[ \t]+z0\.b,[ \t]+{z0\.h-z1\.h},[ \t]+#8
> + *[0-9a-f]+:[ \t]+45a8001f[ \t]+sqshrn[ \t]+z31\.b,[ \t]+{z0\.h-z1\.h},[ \t]+#8
> + *[0-9a-f]+:[ \t]+45a803c0[ \t]+sqshrn[ \t]+z0\.b,[ \t]+{z30\.h-z31\.h},[ \t]+#8

... sqshrn, after all.

Jan


More information about the Binutils mailing list