[Frontend] Remove unused includes (NFC) (#116927)
[llvm-project.git] / llvm / test / MC / AArch64 / SME / fmopa-diagnostics.s
blobf84436ed4a1fae2b9483f886ff0d84691fa88b5d
1 // RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme,+sme-f64f64 2>&1 < %s| FileCheck %s
3 // ------------------------------------------------------------------------- //
4 // Invalid tile
5 //
6 // expected: .s => za0-za3, .d => za0-za7
8 // non-widening
10 fmopa za4.s, p0/m, p0/m, z0.s, z0.s
11 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
12 // CHECK-NEXT: fmopa za4.s, p0/m, p0/m, z0.s, z0.s
13 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
15 fmopa za8.d, p0/m, p0/m, z0.d, z0.d
16 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
17 // CHECK-NEXT: fmopa za8.d, p0/m, p0/m, z0.d, z0.d
18 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
20 // widening
22 fmopa za4.s, p0/m, p0/m, z0.h, z0.h
23 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
24 // CHECK-NEXT: fmopa za4.s, p0/m, p0/m, z0.h, z0.h
25 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
27 // ------------------------------------------------------------------------- //
28 // Invalid predicate (expected: p0-p7)
30 // non-widening
32 fmopa za0.s, p8/m, p0/m, z0.s, z0.s
33 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate register, expected p0..p7 (without element suffix)
34 // CHECK-NEXT: fmopa za0.s, p8/m, p0/m, z0.s, z0.s
35 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
37 fmopa za0.s, p0/m, p8/m, z0.s, z0.s
38 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate register, expected p0..p7 (without element suffix)
39 // CHECK-NEXT: fmopa za0.s, p0/m, p8/m, z0.s, z0.s
40 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
42 fmopa za0.d, p8/m, p0/m, z0.d, z0.d
43 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate register, expected p0..p7 (without element suffix)
44 // CHECK-NEXT: fmopa za0.d, p8/m, p0/m, z0.d, z0.d
45 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
47 fmopa za0.d, p0/m, p8/m, z0.d, z0.d
48 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate register, expected p0..p7 (without element suffix)
49 // CHECK-NEXT: fmopa za0.d, p0/m, p8/m, z0.d, z0.d
50 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
52 // widening
54 fmopa za0.s, p8/m, p0/m, z0.h, z0.h
55 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate register, expected p0..p7 (without element suffix)
56 // CHECK-NEXT: fmopa za0.s, p8/m, p0/m, z0.h, z0.h
57 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
59 fmopa za0.s, p0/m, p8/m, z0.h, z0.h
60 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate register, expected p0..p7 (without element suffix)
61 // CHECK-NEXT: fmopa za0.s, p0/m, p8/m, z0.h, z0.h
62 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
64 // ------------------------------------------------------------------------- //
65 // Invalid predicate qualifier (expected: /m)
67 // non-widening
69 fmopa za0.s, p0/z, p0/m, z0.s, z0.s
70 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
71 // CHECK-NEXT: fmopa za0.s, p0/z, p0/m, z0.s, z0.s
72 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
74 fmopa za0.s, p0/m, p0/z, z0.s, z0.s
75 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
76 // CHECK-NEXT: fmopa za0.s, p0/m, p0/z, z0.s, z0.s
77 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
79 fmopa za0.d, p0/z, p0/m, z0.d, z0.d
80 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
81 // CHECK-NEXT: fmopa za0.d, p0/z, p0/m, z0.d, z0.d
82 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
84 fmopa za0.d, p0/m, p0/z, z0.d, z0.d
85 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
86 // CHECK-NEXT: fmopa za0.d, p0/m, p0/z, z0.d, z0.d
87 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
89 // widening
91 fmopa za0.s, p0/z, p0/m, z0.h, z0.h
92 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
93 // CHECK-NEXT: fmopa za0.s, p0/z, p0/m, z0.h, z0.h
94 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
96 fmopa za0.s, p0/m, p0/z, z0.h, z0.h
97 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
98 // CHECK-NEXT: fmopa za0.s, p0/m, p0/z, z0.h, z0.h
99 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
101 // ------------------------------------------------------------------------- //
102 // Invalid ZPR type suffix
104 // expected: .s => .s (non-widening), .h (widening), .d => .d
106 // non-widening
108 fmopa za0.s, p0/m, p0/m, z0.b, z0.s
109 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
110 // CHECK-NEXT: fmopa za0.s, p0/m, p0/m, z0.b, z0.s
111 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
113 fmopa za0.s, p0/m, p0/m, z0.s, z0.h
114 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
115 // CHECK-NEXT: fmopa za0.s, p0/m, p0/m, z0.s, z0.h
116 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
118 fmopa za0.d, p0/m, p0/m, z0.b, z0.d
119 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
120 // CHECK-NEXT: fmopa za0.d, p0/m, p0/m, z0.b, z0.d
121 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
123 fmopa za0.d, p0/m, p0/m, z0.d, z0.h
124 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
125 // CHECK-NEXT: fmopa za0.d, p0/m, p0/m, z0.d, z0.h
126 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
128 // widening
130 fmopa za0.s, p0/m, p0/m, z0.b, z0.h
131 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
132 // CHECK-NEXT: fmopa za0.s, p0/m, p0/m, z0.b, z0.h
133 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
135 fmopa za0.s, p0/m, p0/m, z0.h, z0.d
136 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
137 // CHECK-NEXT: fmopa za0.s, p0/m, p0/m, z0.h, z0.d
138 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: