[Frontend] Remove unused includes (NFC) (#116927)
[llvm-project.git] / llvm / test / MC / AArch64 / SME2p2 / utmopa-diagnostics.s
blobfed08e4d7cc08b186df71a56c16959fce99b59e7
1 // RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2p2 2>&1 < %s| FileCheck %s
3 // --------------------------------------------------------------------------//
4 // Invalid ZA register
6 utmopa za4.s, {z30.b-z31.b}, z31.b, z31[3]
7 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
8 // CHECK-NEXT: utmopa za4.s, {z30.b-z31.b}, z31.b, z31[3]
9 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
11 utmopa za4.s, {z30.h-z31.h}, z31.h, z31[3]
12 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
13 // CHECK-NEXT: utmopa za4.s, {z30.h-z31.h}, z31.h, z31[3]
14 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
16 // --------------------------------------------------------------------------//
17 // Invalid vector list operand
19 utmopa 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: utmopa za3.s, {z29.b-z30.b}, z31.b, z31[3]
22 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
24 utmopa 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: utmopa za3.s, {z29.h-z30.h}, z31.h, z31[3]
27 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
29 // --------------------------------------------------------------------------//
30 // Invalid ZK register
31 utmopa 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: utmopa za3.s, {z28.b-z29.b}, z31.b, z19[3]
34 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
36 utmopa 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: utmopa za3.s, {z28.b-z29.b}, z31.b, z24[3]
39 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
41 utmopa 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: utmopa za3.s, {z28.b-z29.b}, z31.b, z27[3]
44 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
46 utmopa 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: utmopa za3.s, {z28.h-z29.h}, z31.h, z19[3]
49 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
51 utmopa 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: utmopa za3.s, {z28.h-z29.h}, z31.h, z24[3]
54 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
56 utmopa 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: utmopa za3.s, {z28.h-z29.h}, z31.h, z27[3]
59 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
61 // --------------------------------------------------------------------------//
62 // Invalid immediate
64 utmopa 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: utmopa za3.s, {z28.b-z29.b}, z31.b, z20[4]
67 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
69 utmopa 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: utmopa za3.s, {z28.h-z29.h}, z31.h, z20[4]
72 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
74 // --------------------------------------------------------------------------//
75 // Invalid ZPR type suffix
77 utmopa 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: utmopa za0.h, {z28.b-z29.b}, z31.b, z20[2]
80 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
82 utmopa 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: utmopa za0.h, {z28.h-z29.h}, z31.h, z20[2]
85 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
87 utmopa za3.s, {z28.s-z29.s}, z31.s, z20[2]
88 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
89 // CHECK-NEXT: utmopa za3.s, {z28.s-z29.s}, z31.s, z20[2]
90 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
92 utmopa 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: utmopa za3.d, {z28.s-z29.s}, z31.s, z20[3]
95 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
97 utmopa 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: utmopa za3.d, {z28.h-z29.h}, z31.h, z20[3]
100 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: