diff options
author | Srinath Parvathaneni <srinath.parvathaneni@arm.com> | 2024-01-15 09:37:32 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2024-01-15 11:45:41 +0000 |
commit | 39092c7a1fb0927fbbdb40e1142de816d6f3f097 (patch) | |
tree | 39c066e97256ea52262332db3601294caf5708b6 /gas | |
parent | 88601c2d941b004b443dc4bfdf3b93ea1983d136 (diff) | |
download | gdb-39092c7a1fb0927fbbdb40e1142de816d6f3f097.zip gdb-39092c7a1fb0927fbbdb40e1142de816d6f3f097.tar.gz gdb-39092c7a1fb0927fbbdb40e1142de816d6f3f097.tar.bz2 |
aarch64: Add SVE2.1 dupq, eorqv and extq instructions.
Hi,
This patch add support for SVE2.1 instruction dupq, eorqv and extq.
Regression testing for aarch64-none-elf target and found no regressions.
Ok for binutils-master?
Regards,
Srinath.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/config/tc-aarch64.c | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/aarch64/sve2p1-1-bad.l | 20 | ||||
-rw-r--r-- | gas/testsuite/gas/aarch64/sve2p1-1.d | 20 | ||||
-rw-r--r-- | gas/testsuite/gas/aarch64/sve2p1-1.s | 22 |
4 files changed, 64 insertions, 0 deletions
diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c index 04dd08a..0665732 100644 --- a/gas/config/tc-aarch64.c +++ b/gas/config/tc-aarch64.c @@ -6698,6 +6698,8 @@ parse_operands (char *str, const aarch64_opcode *opcode) case AARCH64_OPND_SVE_Zm4_11_INDEX: case AARCH64_OPND_SVE_Zm4_INDEX: case AARCH64_OPND_SVE_Zn_INDEX: + case AARCH64_OPND_SVE_Zm_imm4: + case AARCH64_OPND_SVE_Zn_5_INDEX: case AARCH64_OPND_SME_Zm_INDEX1: case AARCH64_OPND_SME_Zm_INDEX2: case AARCH64_OPND_SME_Zm_INDEX3_1: diff --git a/gas/testsuite/gas/aarch64/sve2p1-1-bad.l b/gas/testsuite/gas/aarch64/sve2p1-1-bad.l index 6b07eee..f5a80d2 100644 --- a/gas/testsuite/gas/aarch64/sve2p1-1-bad.l +++ b/gas/testsuite/gas/aarch64/sve2p1-1-bad.l @@ -35,3 +35,23 @@ .*: Error: selected processor does not support `uminqv v4.2d,p3,z2.d' .*: Error: selected processor does not support `uminqv v8.2d,p4,z1.d' .*: Error: selected processor does not support `uminqv v16.4s,p7,z0.s' +.*: Error: selected processor does not support `dupq z10.b,z20.b\[0\]' +.*: Error: selected processor does not support `dupq z10.b,z20.b\[15\]' +.*: Error: selected processor does not support `dupq z10.h,z20.h\[0\]' +.*: Error: selected processor does not support `dupq z10.h,z20.h\[7\]' +.*: Error: selected processor does not support `dupq z10.s,z20.s\[0\]' +.*: Error: selected processor does not support `dupq z10.s,z20.s\[3\]' +.*: Error: selected processor does not support `dupq z10.d,z20.d\[0\]' +.*: Error: selected processor does not support `dupq z10.d,z20.d\[1\]' +.*: Error: selected processor does not support `eorqv v0.16b,p0,z16.b' +.*: Error: selected processor does not support `eorqv v1.8h,p1,z8.h' +.*: Error: selected processor does not support `eorqv v2.4s,p2,z4.s' +.*: Error: selected processor does not support `eorqv v4.2d,p3,z2.d' +.*: Error: selected processor does not support `eorqv v8.2d,p4,z1.d' +.*: Error: selected processor does not support `eorqv v16.4s,p7,z0.s' +.*: Error: selected processor does not support `extq z0.b,z0.b,z10.b\[15\]' +.*: Error: selected processor does not support `extq z1.b,z1.b,z15.b\[7\]' +.*: Error: selected processor does not support `extq z2.b,z2.b,z5.b\[3\]' +.*: Error: selected processor does not support `extq z4.b,z4.b,z12.b\[1\]' +.*: Error: selected processor does not support `extq z8.b,z8.b,z7.b\[4\]' +.*: Error: selected processor does not support `extq z16.b,z16.b,z1.b\[8\]' diff --git a/gas/testsuite/gas/aarch64/sve2p1-1.d b/gas/testsuite/gas/aarch64/sve2p1-1.d index d3d14f3..6d718ae 100644 --- a/gas/testsuite/gas/aarch64/sve2p1-1.d +++ b/gas/testsuite/gas/aarch64/sve2p1-1.d @@ -44,3 +44,23 @@ .*: 04cf2c44 uminqv v4.2d, p3, z2.d .*: 04cf3028 uminqv v8.2d, p4, z1.d .*: 048f3c10 uminqv v16.4s, p7, z0.s +.*: 0530268a dupq z10.b, z20.b\[0\] +.*: 053f268a dupq z10.b, z20.b\[15\] +.*: 0521268a dupq z10.h, z20.h\[0\] +.*: 052f268a dupq z10.h, z20.h\[7\] +.*: 0522268a dupq z10.s, z20.s\[0\] +.*: 052e268a dupq z10.s, z20.s\[3\] +.*: 0524268a dupq z10.d, z20.d\[0\] +.*: 052c268a dupq z10.d, z20.d\[1\] +.*: 041d2200 eorqv v0.16b, p0, z16.b +.*: 045d2501 eorqv v1.8h, p1, z8.h +.*: 049d2882 eorqv v2.4s, p2, z4.s +.*: 04dd2c44 eorqv v4.2d, p3, z2.d +.*: 04dd3028 eorqv v8.2d, p4, z1.d +.*: 049d3c10 eorqv v16.4s, p7, z0.s +.*: 056a27c0 extq z0.b, z0.b, z10.b\[15\] +.*: 056f25c1 extq z1.b, z1.b, z15.b\[7\] +.*: 056524c2 extq z2.b, z2.b, z5.b\[3\] +.*: 056c2444 extq z4.b, z4.b, z12.b\[1\] +.*: 05672508 extq z8.b, z8.b, z7.b\[4\] +.*: 05612610 extq z16.b, z16.b, z1.b\[8\] diff --git a/gas/testsuite/gas/aarch64/sve2p1-1.s b/gas/testsuite/gas/aarch64/sve2p1-1.s index c56ebf8..5278dcf 100644 --- a/gas/testsuite/gas/aarch64/sve2p1-1.s +++ b/gas/testsuite/gas/aarch64/sve2p1-1.s @@ -39,3 +39,25 @@ uminqv v2.4s, p2, z4.s uminqv v4.2d, p3, z2.d uminqv v8.2d, p4, z1.d uminqv v16.4s, p7, z0.s +dupq z10.b, z20.b[0] +dupq z10.b, z20.b[15] +dupq z10.h, z20.h[0] +dupq z10.h, z20.h[7] +dupq z10.s, z20.s[0] +dupq z10.s, z20.s[3] +dupq z10.d, z20.d[0] +dupq z10.d, z20.d[1] + +eorqv v0.16b, p0, z16.b +eorqv v1.8h, p1, z8.h +eorqv v2.4s, p2, z4.s +eorqv v4.2d, p3, z2.d +eorqv v8.2d, p4, z1.d +eorqv v16.4s, p7, z0.s + +extq z0.b, z0.b, z10.b[15] +extq z1.b, z1.b, z15.b[7] +extq z2.b, z2.b, z5.b[3] +extq z4.b, z4.b, z12.b[1] +extq z8.b, z8.b, z7.b[4] +extq z16.b, z16.b, z1.b[8] |