aboutsummaryrefslogtreecommitdiff
path: root/gas/testsuite
diff options
context:
space:
mode:
authorSrinath Parvathaneni <srinath.parvathaneni@arm.com>2024-01-15 09:34:41 +0000
committerNick Clifton <nickc@redhat.com>2024-01-15 11:45:41 +0000
commit89e06ec1521898892e27615714f51d30703d5139 (patch)
tree2f51b8db85375d158020794c4a4fcbb63033fcd9 /gas/testsuite
parent7e8d2d875701971c77224079056a0c8272d63109 (diff)
downloadgdb-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.d42
-rw-r--r--gas/testsuite/gas/aarch64/sme2p1-1.s39
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]