diff options
author | Srinath Parvathaneni <srinath.parvathaneni@arm.com> | 2024-01-15 09:34:41 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2024-01-15 11:45:41 +0000 |
commit | 89e06ec1521898892e27615714f51d30703d5139 (patch) | |
tree | 2f51b8db85375d158020794c4a4fcbb63033fcd9 /gas/testsuite | |
parent | 7e8d2d875701971c77224079056a0c8272d63109 (diff) | |
download | gdb-89e06ec1521898892e27615714f51d30703d5139.zip gdb-89e06ec1521898892e27615714f51d30703d5139.tar.gz gdb-89e06ec1521898892e27615714f51d30703d5139.tar.bz2 |
aarch64: Add support for FEAT_SME2p1 instructions.
Hi,
This patch add support for FEAT_SME2p1 and "movaz" instructions
along with the optional flag +sme2p1.
Following "movaz" instructions are add:
Move and zero two ZA tile slices to vector registers.
Move and zero four ZA tile slices to vector registers.
Regression testing for aarch64-none-elf target and found no regressions.
Ok for binutils-master?
Regards,
Srinath.
Diffstat (limited to 'gas/testsuite')
-rw-r--r-- | gas/testsuite/gas/aarch64/sme2p1-1.d | 42 | ||||
-rw-r--r-- | gas/testsuite/gas/aarch64/sme2p1-1.s | 39 |
2 files changed, 81 insertions, 0 deletions
diff --git a/gas/testsuite/gas/aarch64/sme2p1-1.d b/gas/testsuite/gas/aarch64/sme2p1-1.d new file mode 100644 index 0000000..a6e7b76 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sme2p1-1.d @@ -0,0 +1,42 @@ +#name: Test of SME2.1 movaz instructions. +#as: -march=armv9.4-a+sme2p1 +#objdump: -dr + +[^:]+: file format .* + + +[^:]+: + +[^:]+: +.*: c006c260 movaz {z0.b-z1.b}, za0v.b \[w14, 6:7\] +.*: c046c260 movaz {z0.h-z1.h}, za0v.h \[w14, 6:7\] +.*: c086c220 movaz {z0.s-z1.s}, za0v.s \[w14, 2:3\] +.*: c0c6c200 movaz {z0.d-z1.d}, za0v.d \[w14, 0:1\] +.*: c00602e0 movaz {z0.b-z1.b}, za0h.b \[w12, 14:15\] +.*: c0462260 movaz {z0.h-z1.h}, za0h.h \[w13, 6:7\] +.*: c0864220 movaz {z0.s-z1.s}, za0h.s \[w14, 2:3\] +.*: c0c66200 movaz {z0.d-z1.d}, za0h.d \[w15, 0:1\] +.*: c006c260 movaz {z0.b-z1.b}, za0v.b \[w14, 6:7\] +.*: c046c2e0 movaz {z0.h-z1.h}, za1v.h \[w14, 6:7\] +.*: c086c2a0 movaz {z0.s-z1.s}, za2v.s \[w14, 2:3\] +.*: c0c6c260 movaz {z0.d-z1.d}, za3v.d \[w14, 0:1\] +.*: c00602e0 movaz {z0.b-z1.b}, za0h.b \[w12, 14:15\] +.*: c04622e0 movaz {z0.h-z1.h}, za1h.h \[w13, 6:7\] +.*: c08642a0 movaz {z0.s-z1.s}, za2h.s \[w14, 2:3\] +.*: c0c66260 movaz {z0.d-z1.d}, za3h.d \[w15, 0:1\] +.*: c006c660 movaz {z0.b-z3.b}, za0v.b \[w14, 12:15\] +.*: c046c620 movaz {z0.h-z3.h}, za0v.h \[w14, 4:7\] +.*: c086c600 movaz {z0.s-z3.s}, za0v.s \[w14, 0:3\] +.*: c0c6c600 movaz {z0.d-z3.d}, za0v.d \[w14, 0:3\] +.*: c0060660 movaz {z0.b-z3.b}, za0h.b \[w12, 12:15\] +.*: c0462620 movaz {z0.h-z3.h}, za0h.h \[w13, 4:7\] +.*: c0864600 movaz {z0.s-z3.s}, za0h.s \[w14, 0:3\] +.*: c0c66600 movaz {z0.d-z3.d}, za0h.d \[w15, 0:3\] +.*: c006c640 movaz {z0.b-z3.b}, za0v.b \[w14, 8:11\] +.*: c046c660 movaz {z0.h-z3.h}, za1v.h \[w14, 4:7\] +.*: c086c640 movaz {z0.s-z3.s}, za2v.s \[w14, 0:3\] +.*: c0c6c660 movaz {z0.d-z3.d}, za3v.d \[w14, 0:3\] +.*: c0060660 movaz {z0.b-z3.b}, za0h.b \[w12, 12:15\] +.*: c0462660 movaz {z0.h-z3.h}, za1h.h \[w13, 4:7\] +.*: c0864640 movaz {z0.s-z3.s}, za2h.s \[w14, 0:3\] +.*: c0c66660 movaz {z0.d-z3.d}, za3h.d \[w15, 0:3\] diff --git a/gas/testsuite/gas/aarch64/sme2p1-1.s b/gas/testsuite/gas/aarch64/sme2p1-1.s new file mode 100644 index 0000000..77481d4 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sme2p1-1.s @@ -0,0 +1,39 @@ + movaz {z0.b - z1.b}, ZA0V.B [w14, 6:7] + movaz {z0.h - z1.h}, ZA0V.H [w14, 6:7] + movaz {z0.s - z1.s}, ZA0V.S [w14, 2:3] + movaz {z0.d - z1.d}, ZA0V.D [w14, 0:1] + + movaz {z0.b - z1.b}, ZA0H.B [w12, 14:15] + movaz {z0.h - z1.h}, ZA0H.H [w13, 6:7] + movaz {z0.s - z1.s}, ZA0H.S [w14, 2:3] + movaz {z0.d - z1.d}, ZA0H.D [w15, 0:1] + + movaz {z0.b - z1.b}, ZA0V.B [w14, 6:7] + movaz {z0.h - z1.h}, ZA1V.H [w14, 6:7] + movaz {z0.s - z1.s}, ZA2V.S [w14, 2:3] + movaz {z0.d - z1.d}, ZA3V.D [w14, 0:1] + + movaz {z0.b - z1.b}, ZA0H.B [w12, 14:15] + movaz {z0.h - z1.h}, ZA1H.H [w13, 6:7] + movaz {z0.s - z1.s}, ZA2H.S [w14, 2:3] + movaz {z0.d - z1.d}, ZA3H.D [w15, 0:1] + + movaz {z0.b - z3.b}, ZA0V.B [w14, 12:15] + movaz {z0.h - z3.h}, ZA0V.H [w14, 4:7] + movaz {z0.s - z3.s}, ZA0V.S [w14, 0:3] + movaz {z0.d - z3.d}, ZA0V.D [w14, 0:3] + + movaz {z0.b - z3.b}, ZA0H.B [w12, 12:15] + movaz {z0.h - z3.h}, ZA0H.H [w13, 4:7] + movaz {z0.s - z3.s}, ZA0H.S [w14, 0:3] + movaz {z0.d - z3.d}, ZA0H.D [w15, 0:3] + + movaz {z0.b - z3.b}, ZA0V.B [w14, 8:11] + movaz {z0.h - z3.h}, ZA1V.H [w14, 4:7] + movaz {z0.s - z3.s}, ZA2V.S [w14, 0:3] + movaz {z0.d - z3.d}, ZA3V.D [w14, 0:3] + + movaz {z0.b - z3.b}, ZA0H.B [w12, 12:15] + movaz {z0.h - z3.h}, ZA1H.H [w13, 4:7] + movaz {z0.s - z3.s}, ZA2H.S [w14, 0:3] + movaz {z0.d - z3.d}, ZA3H.D [w15, 0:3] |