1 // RUN
: not llvm-mc
-triple
=aarch64
-show-encoding
-mattr
=-neon
,+sme
2>&1 < %s| FileCheck
%s
3 // ------------------------------------------------------------------------- //
4 // Check FABD is illegal in streaming mode
7 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: instruction requires
: neon
8 // CHECK-NEXT
: fabd s0
, s1
, s2
9 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
11 // ------------------------------------------------------------------------- //
12 // Check non-scalar v8.6
a BFloat16 instructions are illegal in streaming mode
15 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: instruction requires
: neon
16 // CHECK-NEXT
: bfcvtn v5.4h
, v5.4s
17 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
19 // ------------------------------------------------------------------------- //
20 // Check non-zero index is illegal in streaming mode
21 // ------------------------------------------------------------------------- //
22 // SMOV
8-bit to
32-bit
25 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: instruction requires
: neon
26 // CHECK-NEXT
: smov w0
, v0.
b[1]
27 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
30 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: instruction requires
: neon
31 // CHECK-NEXT
: smov w0
, v0.
b[7]
32 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
35 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: instruction requires
: neon
36 // CHECK-NEXT
: smov w0
, v0.
b[15]
37 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
39 // ------------------------------------------------------------------------- //
40 // SMOV
8-bit to
64-bit
43 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: instruction requires
: neon
44 // CHECK-NEXT
: smov x0
, v0.
b[2]
45 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
48 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: instruction requires
: neon
49 // CHECK-NEXT
: smov x0
, v0.
b[6]
50 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
53 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: instruction requires
: neon
54 // CHECK-NEXT
: smov x0
, v0.
b[12]
55 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
57 // ------------------------------------------------------------------------- //
58 // SMOV
16-bit to
32-bit
61 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: instruction requires
: neon
62 // CHECK-NEXT
: smov w0
, v0.h
[1]
63 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
66 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: instruction requires
: neon
67 // CHECK-NEXT
: smov w0
, v0.h
[3]
68 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
71 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: instruction requires
: neon
72 // CHECK-NEXT
: smov w0
, v0.h
[7]
73 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
75 // ------------------------------------------------------------------------- //
76 // SMOV
16-bit to
64-bit
79 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: instruction requires
: neon
80 // CHECK-NEXT
: smov x0
, v0.h
[2]
81 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
84 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: instruction requires
: neon
85 // CHECK-NEXT
: smov x0
, v0.h
[4]
86 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
89 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: instruction requires
: neon
90 // CHECK-NEXT
: smov x0
, v0.h
[6]
91 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
93 // ------------------------------------------------------------------------- //
94 // SMOV
32-bit to
64-bit
97 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: instruction requires
: neon
98 // CHECK-NEXT
: smov x0
, v0.s
[1]
99 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
102 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: instruction requires
: neon
103 // CHECK-NEXT
: smov x0
, v0.s
[2]
104 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
107 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: instruction requires
: neon
108 // CHECK-NEXT
: smov x0
, v0.s
[3]
109 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
111 // ------------------------------------------------------------------------- //
112 // UMOV
8-bit to
32-bit
115 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: instruction requires
: neon
116 // CHECK-NEXT
: umov w0
, v0.
b[1]
117 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
120 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: instruction requires
: neon
121 // CHECK-NEXT
: umov w0
, v0.
b[7]
122 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
125 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: instruction requires
: neon
126 // CHECK-NEXT
: umov w0
, v0.
b[15]
127 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
129 // ------------------------------------------------------------------------- //
130 // UMOV
16-bit to
32-bit
133 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: instruction requires
: neon
134 // CHECK-NEXT
: umov w0
, v0.h
[1]
135 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
138 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: instruction requires
: neon
139 // CHECK-NEXT
: umov w0
, v0.h
[3]
140 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
143 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: instruction requires
: neon
144 // CHECK-NEXT
: umov w0
, v0.h
[7]
145 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
148 // ------------------------------------------------------------------------- //
149 // UMOV
32-bit to
32-bit
152 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: instruction requires
: neon
153 // CHECK-NEXT
: umov w0
, v0.s
[1]
154 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
157 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: instruction requires
: neon
158 // CHECK-NEXT
: umov w0
, v0.s
[2]
159 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
162 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: instruction requires
: neon
163 // CHECK-NEXT
: umov w0
, v0.s
[3]
164 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
166 // ------------------------------------------------------------------------- //
167 // UMOV
64-bit to
64-bit
170 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: instruction requires
: neon
171 // CHECK-NEXT
: umov x0
, v0.d
[1]
172 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}: