summaryrefslogtreecommitdiff
path: root/gas/testsuite/gas
diff options
context:
space:
mode:
Diffstat (limited to 'gas/testsuite/gas')
-rw-r--r--gas/testsuite/gas/aarch64/sme2-29-invalid.d3
-rw-r--r--gas/testsuite/gas/aarch64/sme2-29-invalid.l39
-rw-r--r--gas/testsuite/gas/aarch64/sme2-29-invalid.s14
-rw-r--r--gas/testsuite/gas/aarch64/sme2-29-noarch.d3
-rw-r--r--gas/testsuite/gas/aarch64/sme2-29-noarch.l37
-rw-r--r--gas/testsuite/gas/aarch64/sme2-29.d45
-rw-r--r--gas/testsuite/gas/aarch64/sme2-29.s47
7 files changed, 188 insertions, 0 deletions
diff --git a/gas/testsuite/gas/aarch64/sme2-29-invalid.d b/gas/testsuite/gas/aarch64/sme2-29-invalid.d
new file mode 100644
index 00000000000..ad85e2d6ffa
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-29-invalid.d
@@ -0,0 +1,3 @@
+#as: -march=armv8-a
+#source: sme2-29-invalid.s
+#error_output: sme2-29-invalid.l
diff --git a/gas/testsuite/gas/aarch64/sme2-29-invalid.l b/gas/testsuite/gas/aarch64/sme2-29-invalid.l
new file mode 100644
index 00000000000..893866c114f
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-29-invalid.l
@@ -0,0 +1,39 @@
+[^ :]+: Assembler messages:
+[^ :]+:[0-9]+: Error: expected '{' at operand 1 -- `sunpk 0,z0\.b'
+[^ :]+:[0-9]+: Error: expected a register or register list at operand 2 -- `sunpk {z0\.h,z1\.h},0'
+[^ :]+:[0-9]+: Error: missing braces at operand 1 -- `sunpk z0\.b,z0\.b'
+[^ :]+:[0-9]+: Error: operand mismatch -- `sunpk {z0\.b,z1\.b},z0\.b'
+[^ :]+:[0-9]+: Info: did you mean this\?
+[^ :]+:[0-9]+: Info: sunpk {z0\.h-z1\.h}, z0\.b
+[^ :]+:[0-9]+: Info: other valid variant\(s\):
+[^ :]+:[0-9]+: Info: sunpk {z0\.s-z1\.s}, z0\.h
+[^ :]+:[0-9]+: Info: sunpk {z0\.d-z1\.d}, z0\.s
+[^ :]+:[0-9]+: Error: operand mismatch -- `sunpk {z0\.h,z1\.h},z0\.h'
+[^ :]+:[0-9]+: Info: did you mean this\?
+[^ :]+:[0-9]+: Info: sunpk {z0\.h-z1\.h}, z0\.b
+[^ :]+:[0-9]+: Info: other valid variant\(s\):
+[^ :]+:[0-9]+: Info: sunpk {z0\.s-z1\.s}, z0\.h
+[^ :]+:[0-9]+: Info: sunpk {z0\.d-z1\.d}, z0\.s
+[^ :]+:[0-9]+: Error: start register out of range at operand 1 -- `sunpk {z1\.h,z2\.h},z0\.b'
+[^ :]+:[0-9]+: Error: operand mismatch -- `sunpk {z0\.b,z2\.b},z0\.b'
+[^ :]+:[0-9]+: Info: did you mean this\?
+[^ :]+:[0-9]+: Info: sunpk {z0\.h, z2\.h}, z0\.b
+[^ :]+:[0-9]+: Info: other valid variant\(s\):
+[^ :]+:[0-9]+: Info: sunpk {z0\.s, z2\.s}, z0\.h
+[^ :]+:[0-9]+: Info: sunpk {z0\.d, z2\.d}, z0\.s
+[^ :]+:[0-9]+: Error: expected a list of 4 registers at operand 1 -- `sunpk {z1\.h-z3\.h},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: expected a list of 4 registers at operand 1 -- `sunpk {z2\.h-z4\.h},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: expected a list of 4 registers at operand 1 -- `sunpk {z3\.h-z5\.h},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: operand mismatch -- `sunpk {z0\.s-z3\.s},z0\.b'
+[^ :]+:[0-9]+: Info: did you mean this\?
+[^ :]+:[0-9]+: Info: sunpk {z0\.h-z3\.h}, z0\.b
+[^ :]+:[0-9]+: Info: other valid variant\(s\):
+[^ :]+:[0-9]+: Info: sunpk {z0\.s-z3\.s}, z0\.h
+[^ :]+:[0-9]+: Info: sunpk {z0\.d-z3\.d}, z0\.s
+[^ :]+:[0-9]+: Error: expected an SVE vector register at operand 2 -- `sunpk {z0\.s-z3\.s},{x0\.s-x1\.s}'
+[^ :]+:[0-9]+: Error: operand mismatch -- `sunpk {z0\.s-z3\.s},{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Info: did you mean this\?
+[^ :]+:[0-9]+: Info: sunpk {z0\.s-z3\.s}, {z0\.h-z3\.h}
+[^ :]+:[0-9]+: Info: other valid variant\(s\):
+[^ :]+:[0-9]+: Info: sunpk {z0\.h-z3\.h}, {z0\.b-z3\.b}
+[^ :]+:[0-9]+: Info: sunpk {z0\.d-z3\.d}, {z0\.s-z3\.s}
diff --git a/gas/testsuite/gas/aarch64/sme2-29-invalid.s b/gas/testsuite/gas/aarch64/sme2-29-invalid.s
new file mode 100644
index 00000000000..2282dd214f4
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-29-invalid.s
@@ -0,0 +1,14 @@
+ sunpk 0, z0.b
+ sunpk { z0.h, z1.h }, 0
+
+ sunpk z0.b, z0.b
+ sunpk { z0.b, z1.b }, z0.b
+ sunpk { z0.h, z1.h }, z0.h
+ sunpk { z1.h, z2.h }, z0.b
+ sunpk { z0.b, z2.b }, z0.b
+ sunpk { z1.h - z3.h }, { z0.b - z1.b }
+ sunpk { z2.h - z4.h }, { z0.b - z1.b }
+ sunpk { z3.h - z5.h }, { z0.b - z1.b }
+ sunpk { z0.s - z3.s }, z0.b
+ sunpk { z0.s - z3.s }, { x0.s - x1.s }
+ sunpk { z0.s - z3.s }, { z0.s - z3.s }
diff --git a/gas/testsuite/gas/aarch64/sme2-29-noarch.d b/gas/testsuite/gas/aarch64/sme2-29-noarch.d
new file mode 100644
index 00000000000..73c02c50997
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-29-noarch.d
@@ -0,0 +1,3 @@
+#as: -march=armv8-a+sme
+#source: sme2-29.s
+#error_output: sme2-29-noarch.l
diff --git a/gas/testsuite/gas/aarch64/sme2-29-noarch.l b/gas/testsuite/gas/aarch64/sme2-29-noarch.l
new file mode 100644
index 00000000000..2777e1672b3
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-29-noarch.l
@@ -0,0 +1,37 @@
+[^ :]+: Assembler messages:
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.h,z1\.h},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z30\.h,z31\.h},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.h,z1\.h},z31\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.h-z3\.h},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z28\.h-z31\.h},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.h-z3\.h},{z30\.b-z31\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.s,z1\.s},z0\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z30\.s,z31\.s},z0\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.s,z1\.s},z31\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.s-z3\.s},{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z28\.s-z31\.s},{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.s-z3\.s},{z30\.h-z31\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.d,z1\.d},z0\.s'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z30\.d,z31\.d},z0\.s'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.d,z1\.d},z31\.s'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.d-z3\.d},{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z28\.d-z31\.d},{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.d-z3\.d},{z30\.s-z31\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.h,z1\.h},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z30\.h,z31\.h},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.h,z1\.h},z31\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.h-z3\.h},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z28\.h-z31\.h},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.h-z3\.h},{z30\.b-z31\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.s,z1\.s},z0\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z30\.s,z31\.s},z0\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.s,z1\.s},z31\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.s-z3\.s},{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z28\.s-z31\.s},{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.s-z3\.s},{z30\.h-z31\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.d,z1\.d},z0\.s'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z30\.d,z31\.d},z0\.s'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.d,z1\.d},z31\.s'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.d-z3\.d},{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z28\.d-z31\.d},{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.d-z3\.d},{z30\.s-z31\.s}'
diff --git a/gas/testsuite/gas/aarch64/sme2-29.d b/gas/testsuite/gas/aarch64/sme2-29.d
new file mode 100644
index 00000000000..235b0554b8f
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-29.d
@@ -0,0 +1,45 @@
+#as: -march=armv8-a+sme2
+#objdump: -dr
+
+[^:]+: file format .*
+
+
+[^:]+:
+
+[^:]+:
+[^:]+: c165e000 sunpk {z0\.h-z1\.h}, z0\.b
+[^:]+: c165e01e sunpk {z30\.h-z31\.h}, z0\.b
+[^:]+: c165e3e0 sunpk {z0\.h-z1\.h}, z31\.b
+[^:]+: c175e000 sunpk {z0\.h-z3\.h}, {z0\.b-z1\.b}
+[^:]+: c175e01c sunpk {z28\.h-z31\.h}, {z0\.b-z1\.b}
+[^:]+: c175e3c0 sunpk {z0\.h-z3\.h}, {z30\.b-z31\.b}
+[^:]+: c1a5e000 sunpk {z0\.s-z1\.s}, z0\.h
+[^:]+: c1a5e01e sunpk {z30\.s-z31\.s}, z0\.h
+[^:]+: c1a5e3e0 sunpk {z0\.s-z1\.s}, z31\.h
+[^:]+: c1b5e000 sunpk {z0\.s-z3\.s}, {z0\.h-z1\.h}
+[^:]+: c1b5e01c sunpk {z28\.s-z31\.s}, {z0\.h-z1\.h}
+[^:]+: c1b5e3c0 sunpk {z0\.s-z3\.s}, {z30\.h-z31\.h}
+[^:]+: c1e5e000 sunpk {z0\.d-z1\.d}, z0\.s
+[^:]+: c1e5e01e sunpk {z30\.d-z31\.d}, z0\.s
+[^:]+: c1e5e3e0 sunpk {z0\.d-z1\.d}, z31\.s
+[^:]+: c1f5e000 sunpk {z0\.d-z3\.d}, {z0\.s-z1\.s}
+[^:]+: c1f5e01c sunpk {z28\.d-z31\.d}, {z0\.s-z1\.s}
+[^:]+: c1f5e3c0 sunpk {z0\.d-z3\.d}, {z30\.s-z31\.s}
+[^:]+: c165e001 uunpk {z0\.h-z1\.h}, z0\.b
+[^:]+: c165e01f uunpk {z30\.h-z31\.h}, z0\.b
+[^:]+: c165e3e1 uunpk {z0\.h-z1\.h}, z31\.b
+[^:]+: c175e001 uunpk {z0\.h-z3\.h}, {z0\.b-z1\.b}
+[^:]+: c175e01d uunpk {z28\.h-z31\.h}, {z0\.b-z1\.b}
+[^:]+: c175e3c1 uunpk {z0\.h-z3\.h}, {z30\.b-z31\.b}
+[^:]+: c1a5e001 uunpk {z0\.s-z1\.s}, z0\.h
+[^:]+: c1a5e01f uunpk {z30\.s-z31\.s}, z0\.h
+[^:]+: c1a5e3e1 uunpk {z0\.s-z1\.s}, z31\.h
+[^:]+: c1b5e001 uunpk {z0\.s-z3\.s}, {z0\.h-z1\.h}
+[^:]+: c1b5e01d uunpk {z28\.s-z31\.s}, {z0\.h-z1\.h}
+[^:]+: c1b5e3c1 uunpk {z0\.s-z3\.s}, {z30\.h-z31\.h}
+[^:]+: c1e5e001 uunpk {z0\.d-z1\.d}, z0\.s
+[^:]+: c1e5e01f uunpk {z30\.d-z31\.d}, z0\.s
+[^:]+: c1e5e3e1 uunpk {z0\.d-z1\.d}, z31\.s
+[^:]+: c1f5e001 uunpk {z0\.d-z3\.d}, {z0\.s-z1\.s}
+[^:]+: c1f5e01d uunpk {z28\.d-z31\.d}, {z0\.s-z1\.s}
+[^:]+: c1f5e3c1 uunpk {z0\.d-z3\.d}, {z30\.s-z31\.s}
diff --git a/gas/testsuite/gas/aarch64/sme2-29.s b/gas/testsuite/gas/aarch64/sme2-29.s
new file mode 100644
index 00000000000..1cf1a3f239b
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-29.s
@@ -0,0 +1,47 @@
+ sunpk { z0.h, z1.h }, z0.b
+ sunpk { z30.h, z31.h }, z0.b
+ sunpk { z0.h, z1.h }, z31.b
+
+ sunpk { z0.h - z3.h }, { z0.b - z1.b }
+ sunpk { z28.h - z31.h }, { z0.b - z1.b }
+ sunpk { z0.h - z3.h }, { z30.b - z31.b }
+
+ sunpk { z0.s, z1.s }, z0.h
+ sunpk { z30.s, z31.s }, z0.h
+ sunpk { z0.s, z1.s }, z31.h
+
+ sunpk { z0.s - z3.s }, { z0.h - z1.h }
+ sunpk { z28.s - z31.s }, { z0.h - z1.h }
+ sunpk { z0.s - z3.s }, { z30.h - z31.h }
+
+ sunpk { z0.d, z1.d }, z0.s
+ sunpk { z30.d, z31.d }, z0.s
+ sunpk { z0.d, z1.d }, z31.s
+
+ sunpk { z0.d - z3.d }, { z0.s - z1.s }
+ sunpk { z28.d - z31.d }, { z0.s - z1.s }
+ sunpk { z0.d - z3.d }, { z30.s - z31.s }
+
+ uunpk { z0.h, z1.h }, z0.b
+ uunpk { z30.h, z31.h }, z0.b
+ uunpk { z0.h, z1.h }, z31.b
+
+ uunpk { z0.h - z3.h }, { z0.b - z1.b }
+ uunpk { z28.h - z31.h }, { z0.b - z1.b }
+ uunpk { z0.h - z3.h }, { z30.b - z31.b }
+
+ uunpk { z0.s, z1.s }, z0.h
+ uunpk { z30.s, z31.s }, z0.h
+ uunpk { z0.s, z1.s }, z31.h
+
+ uunpk { z0.s - z3.s }, { z0.h - z1.h }
+ uunpk { z28.s - z31.s }, { z0.h - z1.h }
+ uunpk { z0.s - z3.s }, { z30.h - z31.h }
+
+ uunpk { z0.d, z1.d }, z0.s
+ uunpk { z30.d, z31.d }, z0.s
+ uunpk { z0.d, z1.d }, z31.s
+
+ uunpk { z0.d - z3.d }, { z0.s - z1.s }
+ uunpk { z28.d - z31.d }, { z0.s - z1.s }
+ uunpk { z0.d - z3.d }, { z30.s - z31.s }