diff options
author | Richard Sandiford <richard.sandiford@arm.com> | 2023-03-30 11:09:15 +0100 |
---|---|---|
committer | Richard Sandiford <richard.sandiford@arm.com> | 2023-03-30 11:09:15 +0100 |
commit | 261f8708dbbb2c0cc1e7be7986083c6a81005b2e (patch) | |
tree | be39b1b930d71d165eed78b343f1febceb49201c /gas | |
parent | a42de2296a069aa3037594585994b2d376b0baff (diff) | |
download | binutils-261f8708dbbb2c0cc1e7be7986083c6a81005b2e.zip binutils-261f8708dbbb2c0cc1e7be7986083c6a81005b2e.tar.gz binutils-261f8708dbbb2c0cc1e7be7986083c6a81005b2e.tar.bz2 |
aarch64: Add the SME2 MOPA and MOPS instructions
[BSU]MOP[AS] share the same format.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/testsuite/gas/aarch64/sme2-21-invalid.d | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/aarch64/sme2-21-invalid.l | 18 | ||||
-rw-r--r-- | gas/testsuite/gas/aarch64/sme2-21-invalid.s | 12 | ||||
-rw-r--r-- | gas/testsuite/gas/aarch64/sme2-21-noarch.d | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/aarch64/sme2-21-noarch.l | 43 | ||||
-rw-r--r-- | gas/testsuite/gas/aarch64/sme2-21.d | 51 | ||||
-rw-r--r-- | gas/testsuite/gas/aarch64/sme2-21.s | 47 |
7 files changed, 177 insertions, 0 deletions
diff --git a/gas/testsuite/gas/aarch64/sme2-21-invalid.d b/gas/testsuite/gas/aarch64/sme2-21-invalid.d new file mode 100644 index 0000000..5d1d1f4 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sme2-21-invalid.d @@ -0,0 +1,3 @@ +#as: -march=armv8-a +#source: sme2-21-invalid.s +#error_output: sme2-21-invalid.l diff --git a/gas/testsuite/gas/aarch64/sme2-21-invalid.l b/gas/testsuite/gas/aarch64/sme2-21-invalid.l new file mode 100644 index 0000000..c148ab2 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sme2-21-invalid.l @@ -0,0 +1,18 @@ +[^ :]+: Assembler messages: +[^ :]+:[0-9]+: Error: expected a ZA tile at operand 1 -- `bmopa 0,p0/m,p0/m,z0\.s,z0\.s' +[^ :]+:[0-9]+: Error: expected an SVE predicate register at operand 2 -- `bmopa za0\.s,0,p0/m,z0\.s,z0\.s' +[^ :]+:[0-9]+: Error: expected an SVE predicate register at operand 3 -- `bmopa za0\.s,p0/m,0,z0\.s,z0\.s' +[^ :]+:[0-9]+: Error: expected an SVE vector register at operand 4 -- `bmopa za0\.s,p0/m,p0/m,0,z0\.s' +[^ :]+:[0-9]+: Error: expected an SVE vector register at operand 5 -- `bmopa za0\.s,p0/m,p0/m,z0\.s,0' +[^ :]+:[0-9]+: Error: operand mismatch -- `bmopa za0\.b,p0/m,p0/m,z0\.b,z0\.b' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: bmopa za0\.s, p0/m, p0/m, z0\.s, z0\.s +[^ :]+:[0-9]+: Error: operand mismatch -- `bmopa za0\.b,p0/m,p0/m,z0\.s,z0\.s' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: bmopa za0\.s, p0/m, p0/m, z0\.s, z0\.s +[^ :]+:[0-9]+: Error: operand mismatch -- `bmopa za0\.s,p0/m,p0/m,z0\.b,z0\.b' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: bmopa za0\.s, p0/m, p0/m, z0\.s, z0\.s +[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 1 -- `bmopa za4\.s,p0/m,p0/m,z0\.s,z0\.s' +[^ :]+:[0-9]+: Error: p0-p7 expected at operand 2 -- `bmopa za0\.s,p8/m,p0/m,z0\.s,z0\.s' +[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 1 -- `bmopa za4\.s,p0/m,p8/m,z0\.s,z0\.s' diff --git a/gas/testsuite/gas/aarch64/sme2-21-invalid.s b/gas/testsuite/gas/aarch64/sme2-21-invalid.s new file mode 100644 index 0000000..91a3e8f --- /dev/null +++ b/gas/testsuite/gas/aarch64/sme2-21-invalid.s @@ -0,0 +1,12 @@ + bmopa 0, p0/m, p0/m, z0.s, z0.s + bmopa za0.s, 0, p0/m, z0.s, z0.s + bmopa za0.s, p0/m, 0, z0.s, z0.s + bmopa za0.s, p0/m, p0/m, 0, z0.s + bmopa za0.s, p0/m, p0/m, z0.s, 0 + + bmopa za0.b, p0/m, p0/m, z0.b, z0.b + bmopa za0.b, p0/m, p0/m, z0.s, z0.s + bmopa za0.s, p0/m, p0/m, z0.b, z0.b + bmopa za4.s, p0/m, p0/m, z0.s, z0.s + bmopa za0.s, p8/m, p0/m, z0.s, z0.s + bmopa za4.s, p0/m, p8/m, z0.s, z0.s diff --git a/gas/testsuite/gas/aarch64/sme2-21-noarch.d b/gas/testsuite/gas/aarch64/sme2-21-noarch.d new file mode 100644 index 0000000..830ef05 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sme2-21-noarch.d @@ -0,0 +1,3 @@ +#as: -march=armv8-a+sme +#source: sme2-21.s +#error_output: sme2-21-noarch.l diff --git a/gas/testsuite/gas/aarch64/sme2-21-noarch.l b/gas/testsuite/gas/aarch64/sme2-21-noarch.l new file mode 100644 index 0000000..64842d9 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sme2-21-noarch.l @@ -0,0 +1,43 @@ +[^ :]+: Assembler messages: +[^ :]+:[0-9]+: Error: selected processor does not support `bmopa za0\.s,p0/m,p0/m,z0\.s,z0\.s' +[^ :]+:[0-9]+: Error: selected processor does not support `bmopa za3\.s,p0/m,p0/m,z0\.s,z0\.s' +[^ :]+:[0-9]+: Error: selected processor does not support `bmopa za0\.s,p7/m,p0/m,z0\.s,z0\.s' +[^ :]+:[0-9]+: Error: selected processor does not support `bmopa za0\.s,p0/m,p7/m,z0\.s,z0\.s' +[^ :]+:[0-9]+: Error: selected processor does not support `bmopa za0\.s,p0/m,p0/m,z31\.s,z0\.s' +[^ :]+:[0-9]+: Error: selected processor does not support `bmopa za0\.s,p0/m,p0/m,z0\.s,z31\.s' +[^ :]+:[0-9]+: Error: selected processor does not support `bmopa za2\.s,p6/m,p3/m,z19\.s,z8\.s' +[^ :]+:[0-9]+: Error: selected processor does not support `bmops za0\.s,p0/m,p0/m,z0\.s,z0\.s' +[^ :]+:[0-9]+: Error: selected processor does not support `bmops za3\.s,p0/m,p0/m,z0\.s,z0\.s' +[^ :]+:[0-9]+: Error: selected processor does not support `bmops za0\.s,p7/m,p0/m,z0\.s,z0\.s' +[^ :]+:[0-9]+: Error: selected processor does not support `bmops za0\.s,p0/m,p7/m,z0\.s,z0\.s' +[^ :]+:[0-9]+: Error: selected processor does not support `bmops za0\.s,p0/m,p0/m,z31\.s,z0\.s' +[^ :]+:[0-9]+: Error: selected processor does not support `bmops za0\.s,p0/m,p0/m,z0\.s,z31\.s' +[^ :]+:[0-9]+: Error: selected processor does not support `bmops za1\.s,p3/m,p5/m,z24\.s,z6\.s' +[^ :]+:[0-9]+: Error: selected processor does not support `smopa za0\.s,p0/m,p0/m,z0\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `smopa za3\.s,p0/m,p0/m,z0\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `smopa za0\.s,p7/m,p0/m,z0\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `smopa za0\.s,p0/m,p7/m,z0\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `smopa za0\.s,p0/m,p0/m,z31\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `smopa za0\.s,p0/m,p0/m,z0\.h,z31\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `smopa za1\.s,p2/m,p3/m,z14\.h,z25\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `smops za0\.s,p0/m,p0/m,z0\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `smops za3\.s,p0/m,p0/m,z0\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `smops za0\.s,p7/m,p0/m,z0\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `smops za0\.s,p0/m,p7/m,z0\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `smops za0\.s,p0/m,p0/m,z31\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `smops za0\.s,p0/m,p0/m,z0\.h,z31\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `smops za1\.s,p2/m,p3/m,z14\.h,z25\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `umopa za0\.s,p0/m,p0/m,z0\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `umopa za3\.s,p0/m,p0/m,z0\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `umopa za0\.s,p7/m,p0/m,z0\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `umopa za0\.s,p0/m,p7/m,z0\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `umopa za0\.s,p0/m,p0/m,z31\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `umopa za0\.s,p0/m,p0/m,z0\.h,z31\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `umopa za1\.s,p2/m,p3/m,z14\.h,z25\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `umops za0\.s,p0/m,p0/m,z0\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `umops za3\.s,p0/m,p0/m,z0\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `umops za0\.s,p7/m,p0/m,z0\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `umops za0\.s,p0/m,p7/m,z0\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `umops za0\.s,p0/m,p0/m,z31\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `umops za0\.s,p0/m,p0/m,z0\.h,z31\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `umops za1\.s,p2/m,p3/m,z14\.h,z25\.h' diff --git a/gas/testsuite/gas/aarch64/sme2-21.d b/gas/testsuite/gas/aarch64/sme2-21.d new file mode 100644 index 0000000..255a56d --- /dev/null +++ b/gas/testsuite/gas/aarch64/sme2-21.d @@ -0,0 +1,51 @@ +#as: -march=armv8-a+sme2 +#objdump: -dr + +[^:]+: file format .* + + +[^:]+: + +[^:]+: +[^:]+: 80800008 bmopa za0\.s, p0/m, p0/m, z0\.s, z0\.s +[^:]+: 8080000b bmopa za3\.s, p0/m, p0/m, z0\.s, z0\.s +[^:]+: 80801c08 bmopa za0\.s, p7/m, p0/m, z0\.s, z0\.s +[^:]+: 8080e008 bmopa za0\.s, p0/m, p7/m, z0\.s, z0\.s +[^:]+: 808003e8 bmopa za0\.s, p0/m, p0/m, z31\.s, z0\.s +[^:]+: 809f0008 bmopa za0\.s, p0/m, p0/m, z0\.s, z31\.s +[^:]+: 80887a6a bmopa za2\.s, p6/m, p3/m, z19\.s, z8\.s +[^:]+: 80800018 bmops za0\.s, p0/m, p0/m, z0\.s, z0\.s +[^:]+: 8080001b bmops za3\.s, p0/m, p0/m, z0\.s, z0\.s +[^:]+: 80801c18 bmops za0\.s, p7/m, p0/m, z0\.s, z0\.s +[^:]+: 8080e018 bmops za0\.s, p0/m, p7/m, z0\.s, z0\.s +[^:]+: 808003f8 bmops za0\.s, p0/m, p0/m, z31\.s, z0\.s +[^:]+: 809f0018 bmops za0\.s, p0/m, p0/m, z0\.s, z31\.s +[^:]+: 8086af19 bmops za1\.s, p3/m, p5/m, z24\.s, z6\.s +[^:]+: a0800008 smopa za0\.s, p0/m, p0/m, z0\.h, z0\.h +[^:]+: a080000b smopa za3\.s, p0/m, p0/m, z0\.h, z0\.h +[^:]+: a0801c08 smopa za0\.s, p7/m, p0/m, z0\.h, z0\.h +[^:]+: a080e008 smopa za0\.s, p0/m, p7/m, z0\.h, z0\.h +[^:]+: a08003e8 smopa za0\.s, p0/m, p0/m, z31\.h, z0\.h +[^:]+: a09f0008 smopa za0\.s, p0/m, p0/m, z0\.h, z31\.h +[^:]+: a09969c9 smopa za1\.s, p2/m, p3/m, z14\.h, z25\.h +[^:]+: a0800018 smops za0\.s, p0/m, p0/m, z0\.h, z0\.h +[^:]+: a080001b smops za3\.s, p0/m, p0/m, z0\.h, z0\.h +[^:]+: a0801c18 smops za0\.s, p7/m, p0/m, z0\.h, z0\.h +[^:]+: a080e018 smops za0\.s, p0/m, p7/m, z0\.h, z0\.h +[^:]+: a08003f8 smops za0\.s, p0/m, p0/m, z31\.h, z0\.h +[^:]+: a09f0018 smops za0\.s, p0/m, p0/m, z0\.h, z31\.h +[^:]+: a09969d9 smops za1\.s, p2/m, p3/m, z14\.h, z25\.h +[^:]+: a1800008 umopa za0\.s, p0/m, p0/m, z0\.h, z0\.h +[^:]+: a180000b umopa za3\.s, p0/m, p0/m, z0\.h, z0\.h +[^:]+: a1801c08 umopa za0\.s, p7/m, p0/m, z0\.h, z0\.h +[^:]+: a180e008 umopa za0\.s, p0/m, p7/m, z0\.h, z0\.h +[^:]+: a18003e8 umopa za0\.s, p0/m, p0/m, z31\.h, z0\.h +[^:]+: a19f0008 umopa za0\.s, p0/m, p0/m, z0\.h, z31\.h +[^:]+: a19969c9 umopa za1\.s, p2/m, p3/m, z14\.h, z25\.h +[^:]+: a1800018 umops za0\.s, p0/m, p0/m, z0\.h, z0\.h +[^:]+: a180001b umops za3\.s, p0/m, p0/m, z0\.h, z0\.h +[^:]+: a1801c18 umops za0\.s, p7/m, p0/m, z0\.h, z0\.h +[^:]+: a180e018 umops za0\.s, p0/m, p7/m, z0\.h, z0\.h +[^:]+: a18003f8 umops za0\.s, p0/m, p0/m, z31\.h, z0\.h +[^:]+: a19f0018 umops za0\.s, p0/m, p0/m, z0\.h, z31\.h +[^:]+: a19969d9 umops za1\.s, p2/m, p3/m, z14\.h, z25\.h diff --git a/gas/testsuite/gas/aarch64/sme2-21.s b/gas/testsuite/gas/aarch64/sme2-21.s new file mode 100644 index 0000000..a924b7d --- /dev/null +++ b/gas/testsuite/gas/aarch64/sme2-21.s @@ -0,0 +1,47 @@ + bmopa za0.s, p0/m, p0/m, z0.s, z0.s + bmopa za3.s, p0/m, p0/m, z0.s, z0.s + bmopa za0.s, p7/m, p0/m, z0.s, z0.s + bmopa za0.s, p0/m, p7/m, z0.s, z0.s + bmopa za0.s, p0/m, p0/m, z31.s, z0.s + bmopa za0.s, p0/m, p0/m, z0.s, z31.s + bmopa za2.s, p6/m, p3/m, z19.s, z8.s + + bmops za0.s, p0/m, p0/m, z0.s, z0.s + bmops za3.s, p0/m, p0/m, z0.s, z0.s + bmops za0.s, p7/m, p0/m, z0.s, z0.s + bmops za0.s, p0/m, p7/m, z0.s, z0.s + bmops za0.s, p0/m, p0/m, z31.s, z0.s + bmops za0.s, p0/m, p0/m, z0.s, z31.s + bmops za1.s, p3/m, p5/m, z24.s, z6.s + + smopa za0.s, p0/m, p0/m, z0.h, z0.h + smopa za3.s, p0/m, p0/m, z0.h, z0.h + smopa za0.s, p7/m, p0/m, z0.h, z0.h + smopa za0.s, p0/m, p7/m, z0.h, z0.h + smopa za0.s, p0/m, p0/m, z31.h, z0.h + smopa za0.s, p0/m, p0/m, z0.h, z31.h + smopa za1.s, p2/m, p3/m, z14.h, z25.h + + smops za0.s, p0/m, p0/m, z0.h, z0.h + smops za3.s, p0/m, p0/m, z0.h, z0.h + smops za0.s, p7/m, p0/m, z0.h, z0.h + smops za0.s, p0/m, p7/m, z0.h, z0.h + smops za0.s, p0/m, p0/m, z31.h, z0.h + smops za0.s, p0/m, p0/m, z0.h, z31.h + smops za1.s, p2/m, p3/m, z14.h, z25.h + + umopa za0.s, p0/m, p0/m, z0.h, z0.h + umopa za3.s, p0/m, p0/m, z0.h, z0.h + umopa za0.s, p7/m, p0/m, z0.h, z0.h + umopa za0.s, p0/m, p7/m, z0.h, z0.h + umopa za0.s, p0/m, p0/m, z31.h, z0.h + umopa za0.s, p0/m, p0/m, z0.h, z31.h + umopa za1.s, p2/m, p3/m, z14.h, z25.h + + umops za0.s, p0/m, p0/m, z0.h, z0.h + umops za3.s, p0/m, p0/m, z0.h, z0.h + umops za0.s, p7/m, p0/m, z0.h, z0.h + umops za0.s, p0/m, p7/m, z0.h, z0.h + umops za0.s, p0/m, p0/m, z31.h, z0.h + umops za0.s, p0/m, p0/m, z0.h, z31.h + umops za1.s, p2/m, p3/m, z14.h, z25.h |