1 // RUN
: not llvm-mc
-triple
=aarch64
-mattr
=+sme2p2
< %s
2>&1 | FileCheck
%s
7 bfmop4a za0.d
, z0.h
, z16.h
8 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid matrix operand
, expected za
[0-3].s
10 bfmop4a za4.s
, z0.h
, z16.h
11 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
13 bfmop4a za0.s
, z0.s
, z16.h
14 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid restricted vector register
, expected even register in z0.h.
.z14.h
16 bfmop4a za0.s
, z15.h
, z16.h
17 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid restricted vector register
, expected even register in z0.h.
.z14.h
19 bfmop4a za0.s
, z16.h
, z16.h
20 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid restricted vector register
, expected even register in z0.h.
.z14.h
22 bfmop4a za0.s
, z0.h
, z16.s
23 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid restricted vector register
, expected even register in z16.h.
.z30.h
25 bfmop4a za0.s
, z12.h
, z17.h
26 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid restricted vector register
, expected even register in z16.h.
.z30.h
28 bfmop4a za0.s
, z12.h
, z14.h
29 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid restricted vector register
, expected even register in z16.h.
.z30.h
31 bfmop4a za0.s
, z12.h
, z31.h
32 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid restricted vector register
, expected even register in z16.h.
.z30.h
34 // Single
and multiple vectors
36 bfmop4a za0.d
, z0.h
, {z16.h-z17.h
}
37 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid matrix operand
, expected za
[0-3].s
39 bfmop4a za4.s
, z0.h
, {z16.h-z17.h
}
40 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
42 bfmop4a za0.s
, z0.s
, {z16.h-z17.h
}
43 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid restricted vector register
, expected even register in z0.h.
.z14.h
45 bfmop4a za0.s
, z1.h
, {z16.h-z17.h
}
46 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid restricted vector register
, expected even register in z0.h.
.z14.h
48 bfmop4a za0.s
, z16.h
, {z16.h-z17.h
}
49 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid restricted vector register
, expected even register in z0.h.
.z14.h
51 bfmop4a za0.s
, z0.h
, {z16.s-z17.s
}
52 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
54 bfmop4a za0.s
, z0.h
, {z17.h-z18.h
}
55 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid vector list
, expected list with
2 consecutive SVE vectors in the range z16-z30
, where the first vector is
a multiple of
2 and with matching element types
57 bfmop4a za0.s
, z0.h
, {z12.h-z13.h
}
58 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid vector list
, expected list with
2 consecutive SVE vectors in the range z16-z30
, where the first vector is
a multiple of
2 and with matching element types
60 // Multiple
and single vectors
62 bfmop4a za0.d
, {z0.h-z1.h
}, z16.h
63 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid matrix operand
, expected za
[0-3].s
65 bfmop4a za4.s
, {z0.h-z1.h
}, z16.h
66 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
68 bfmop4a za0.s
, {z0.s-z1.h
}, z16.h
69 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: mismatched register size suffix
71 bfmop4a za0.s
, {z1.h-z2.h
}, z16.h
72 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid vector list
, expected list with
2 consecutive SVE vectors in the range z0-z14
, where the first vector is
a multiple of
2 and with matching element types
74 bfmop4a za0.s
, {z16.h-z17.h
}, z16.h
75 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid vector list
, expected list with
2 consecutive SVE vectors in the range z0-z14
, where the first vector is
a multiple of
2 and with matching element types
77 bfmop4a za0.s
, {z0.h-z1.h
}, z16.d
78 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid restricted vector register
, expected even register in z16.h.
.z30.h
80 bfmop4a za0.s
, {z0.h-z1.h
}, z17.h
81 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid restricted vector register
, expected even register in z16.h.
.z30.h
83 bfmop4a za0.s
, {z0.h-z1.h
}, z12.h
84 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid restricted vector register
, expected even register in z16.h.
.z30.h
88 bfmop4a za0.d
, {z0.h-z1.h
}, {z16.h-z17.h
}
89 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid matrix operand
, expected za
[0-3].s
91 bfmop4a za4.s
, {z0.h-z1.h
}, {z16.h-z17.h
}
92 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
94 bfmop4a za0.s
, {z0.s-z1.s
}, {z16.h-z17.h
}
95 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
97 bfmop4a za0.s
, {z1.h-z2.h
}, {z16.h-z17.h
}
98 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid vector list
, expected list with
2 consecutive SVE vectors in the range z0-z14
, where the first vector is
a multiple of
2 and with matching element types
100 bfmop4a za0.s
, {z18.h-z19.h
}, {z16.h-z17.h
}
101 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid vector list
, expected list with
2 consecutive SVE vectors in the range z0-z14
, where the first vector is
a multiple of
2 and with matching element types
103 bfmop4a za0.s
, {z0.h-z1.h
}, {z16.s-z17.s
}
104 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
106 bfmop4a za0.s
, {z0.h-z1.h
}, {z19.h-z20.h
}
107 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid vector list
, expected list with
2 consecutive SVE vectors in the range z16-z30
, where the first vector is
a multiple of
2 and with matching element types
109 bfmop4a za0.s
, {z0.h-z1.h
}, {z10.h-z11.h
}
110 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid vector list
, expected list with
2 consecutive SVE vectors in the range z16-z30
, where the first vector is
a multiple of
2 and with matching element types
117 bfmop4s za0.d
, z0.h
, z16.h
118 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid matrix operand
, expected za
[0-3].s
120 bfmop4s za4.s
, z0.h
, z16.h
121 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
123 bfmop4s za0.s
, z0.s
, z16.h
124 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid restricted vector register
, expected even register in z0.h.
.z14.h
126 bfmop4s za0.s
, z15.h
, z16.h
127 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid restricted vector register
, expected even register in z0.h.
.z14.h
129 bfmop4s za0.s
, z16.h
, z16.h
130 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid restricted vector register
, expected even register in z0.h.
.z14.h
132 bfmop4s za0.s
, z0.h
, z16.s
133 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid restricted vector register
, expected even register in z16.h.
.z30.h
135 bfmop4s za0.s
, z12.h
, z17.h
136 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid restricted vector register
, expected even register in z16.h.
.z30.h
138 bfmop4s za0.s
, z12.h
, z14.h
139 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid restricted vector register
, expected even register in z16.h.
.z30.h
141 bfmop4s za0.s
, z12.h
, z31.h
142 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid restricted vector register
, expected even register in z16.h.
.z30.h
144 // Single
and multiple vectors
146 bfmop4s za0.d
, z0.h
, {z16.h-z17.h
}
147 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid matrix operand
, expected za
[0-3].s
149 bfmop4s za4.s
, z0.h
, {z16.h-z17.h
}
150 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
152 bfmop4s za0.s
, z0.s
, {z16.h-z17.h
}
153 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid restricted vector register
, expected even register in z0.h.
.z14.h
155 bfmop4s za0.s
, z1.h
, {z16.h-z17.h
}
156 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid restricted vector register
, expected even register in z0.h.
.z14.h
158 bfmop4s za0.s
, z16.h
, {z16.h-z17.h
}
159 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid restricted vector register
, expected even register in z0.h.
.z14.h
161 bfmop4s za0.s
, z0.h
, {z16.s-z17.s
}
162 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
164 bfmop4s za0.s
, z0.h
, {z17.h-z18.h
}
165 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid vector list
, expected list with
2 consecutive SVE vectors in the range z16-z30
, where the first vector is
a multiple of
2 and with matching element types
167 bfmop4s za0.s
, z0.h
, {z12.h-z13.h
}
168 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid vector list
, expected list with
2 consecutive SVE vectors in the range z16-z30
, where the first vector is
a multiple of
2 and with matching element types
170 // Multiple
and single vectors
172 bfmop4s za0.d
, {z0.h-z1.h
}, z16.h
173 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid matrix operand
, expected za
[0-3].s
175 bfmop4s za4.s
, {z0.h-z1.h
}, z16.h
176 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
178 bfmop4s za0.s
, {z0.s-z1.h
}, z16.h
179 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: mismatched register size suffix
181 bfmop4s za0.s
, {z1.h-z2.h
}, z16.h
182 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid vector list
, expected list with
2 consecutive SVE vectors in the range z0-z14
, where the first vector is
a multiple of
2 and with matching element types
184 bfmop4s za0.s
, {z16.h-z17.h
}, z16.h
185 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid vector list
, expected list with
2 consecutive SVE vectors in the range z0-z14
, where the first vector is
a multiple of
2 and with matching element types
187 bfmop4s za0.s
, {z0.h-z1.h
}, z16.d
188 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid restricted vector register
, expected even register in z16.h.
.z30.h
190 bfmop4s za0.s
, {z0.h-z1.h
}, z17.h
191 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid restricted vector register
, expected even register in z16.h.
.z30.h
193 bfmop4s za0.s
, {z0.h-z1.h
}, z12.h
194 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid restricted vector register
, expected even register in z16.h.
.z30.h
198 bfmop4s za0.d
, {z0.h-z1.h
}, {z16.h-z17.h
}
199 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid matrix operand
, expected za
[0-3].s
201 bfmop4s za4.s
, {z0.h-z1.h
}, {z16.h-z17.h
}
202 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
204 bfmop4s za0.s
, {z0.s-z1.s
}, {z16.h-z17.h
}
205 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
207 bfmop4s za0.s
, {z1.h-z2.h
}, {z16.h-z17.h
}
208 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid vector list
, expected list with
2 consecutive SVE vectors in the range z0-z14
, where the first vector is
a multiple of
2 and with matching element types
210 bfmop4s za0.s
, {z18.h-z19.h
}, {z16.h-z17.h
}
211 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid vector list
, expected list with
2 consecutive SVE vectors in the range z0-z14
, where the first vector is
a multiple of
2 and with matching element types
213 bfmop4s za0.s
, {z0.h-z1.h
}, {z16.s-z17.s
}
214 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
216 bfmop4s za0.s
, {z0.h-z1.h
}, {z19.h-z20.h
}
217 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid vector list
, expected list with
2 consecutive SVE vectors in the range z16-z30
, where the first vector is
a multiple of
2 and with matching element types
219 bfmop4s za0.s
, {z0.h-z1.h
}, {z10.h-z11.h
}
220 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid vector list
, expected list with
2 consecutive SVE vectors in the range z16-z30
, where the first vector is
a multiple of
2 and with matching element types