[Frontend] Remove unused includes (NFC) (#116927)
[llvm-project.git] / llvm / test / MC / AArch64 / SME2p2 / stmopa-diagnostics.s
blobdb395376d7ceb3268f1eb047f9be732e5a4e2b69
1 // RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2p2 2>&1 < %s| FileCheck %s
3 // --------------------------------------------------------------------------//
4 // Invalid ZA register
6 stmopa za4.s, {z30.b-z31.b}, z31.b, z31[3]
7 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
8 // CHECK-NEXT: stmopa za4.s, {z30.b-z31.b}, z31.b, z31[3]
9 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
11 stmopa za4.s, {z30.h-z31.h}, z31.h, z31[3]
12 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
13 // CHECK-NEXT: stmopa za4.s, {z30.h-z31.h}, z31.h, z31[3]
14 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
16 // --------------------------------------------------------------------------//
17 // Invalid vector list operand
19 stmopa za3.s, {z29.b-z30.b}, z31.b, z31[3]
20 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid vector list, expected list with 2 consecutive SVE vectors, where the first vector is a multiple of 2 and with matching element types
21 // CHECK-NEXT: stmopa za3.s, {z29.b-z30.b}, z31.b, z31[3]
22 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
24 stmopa za3.s, {z29.h-z30.h}, z31.h, z31[3]
25 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid vector list, expected list with 2 consecutive SVE vectors, where the first vector is a multiple of 2 and with matching element types
26 // CHECK-NEXT: stmopa za3.s, {z29.h-z30.h}, z31.h, z31[3]
27 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
29 // --------------------------------------------------------------------------//
30 // Invalid ZK register
31 stmopa za3.s, {z28.b-z29.b}, z31.b, z19[3]
32 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted vector register, expected register in z20..z23 or z28..z31
33 // CHECK-NEXT: stmopa za3.s, {z28.b-z29.b}, z31.b, z19[3]
34 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
36 stmopa za3.s, {z28.b-z29.b}, z31.b, z24[3]
37 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted vector register, expected register in z20..z23 or z28..z31
38 // CHECK-NEXT: stmopa za3.s, {z28.b-z29.b}, z31.b, z24[3]
39 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
41 stmopa za3.s, {z28.b-z29.b}, z31.b, z27[3]
42 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted vector register, expected register in z20..z23 or z28..z31
43 // CHECK-NEXT: stmopa za3.s, {z28.b-z29.b}, z31.b, z27[3]
44 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
46 stmopa za3.s, {z28.h-z29.h}, z31.h, z19[3]
47 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted vector register, expected register in z20..z23 or z28..z31
48 // CHECK-NEXT: stmopa za3.s, {z28.h-z29.h}, z31.h, z19[3]
49 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
51 stmopa za3.s, {z28.h-z29.h}, z31.h, z24[3]
52 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted vector register, expected register in z20..z23 or z28..z31
53 // CHECK-NEXT: stmopa za3.s, {z28.h-z29.h}, z31.h, z24[3]
54 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
56 stmopa za3.s, {z28.h-z29.h}, z31.h, z27[3]
57 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted vector register, expected register in z20..z23 or z28..z31
58 // CHECK-NEXT: stmopa za3.s, {z28.h-z29.h}, z31.h, z27[3]
59 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
61 // --------------------------------------------------------------------------//
62 // Invalid immediate
64 stmopa za3.s, {z28.b-z29.b}, z31.b, z20[4]
65 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3].
66 // CHECK-NEXT: stmopa za3.s, {z28.b-z29.b}, z31.b, z20[4]
67 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
69 stmopa za3.s, {z28.h-z29.h}, z31.h, z20[4]
70 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3].
71 // CHECK-NEXT: stmopa za3.s, {z28.h-z29.h}, z31.h, z20[4]
72 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
74 // --------------------------------------------------------------------------//
75 // Invalid ZPR type suffix
77 stmopa za0.h, {z28.b-z29.b}, z31.b, z20[2]
78 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid matrix operand, expected za[0-3].s
79 // CHECK-NEXT: stmopa za0.h, {z28.b-z29.b}, z31.b, z20[2]
80 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
82 stmopa za0.h, {z28.h-z29.h}, z31.h, z20[2]
83 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid matrix operand, expected za[0-3].s
84 // CHECK-NEXT: stmopa za0.h, {z28.h-z29.h}, z31.h, z20[2]
85 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
87 stmopa za3.s, {z28.s-z29.s}, z31.s, z20[2]
88 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
89 // CHECK-NEXT: stmopa za3.s, {z28.s-z29.s}, z31.s, z20[2]
90 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
92 stmopa za3.d, {z28.s-z29.s}, z31.s, z20[3]
93 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid matrix operand, expected za[0-3].s
94 // CHECK-NEXT: stmopa za3.d, {z28.s-z29.s}, z31.s, z20[3]
95 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
97 stmopa za3.d, {z28.h-z29.h}, z31.h, z20[3]
98 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid matrix operand, expected za[0-3].s
99 // CHECK-NEXT: stmopa za3.d, {z28.h-z29.h}, z31.h, z20[3]
100 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: