1 // RUN
: llvm-mc
-triple
=aarch64
-show-encoding
-mattr
=+sme
< %s \
2 // RUN
: | FileCheck
%s
--check-prefixes
=CHECK-ENCODING
,CHECK-INST
3 // RUN
: not llvm-mc
-triple
=aarch64
-show-encoding
< %s
2>&1 \
4 // RUN
: | FileCheck
%s
--check-prefix
=CHECK-ERROR
5 // RUN
: llvm-mc
-triple
=aarch64
-filetype
=obj
-mattr
=+sme
< %s \
6 // RUN
: | llvm-objdump
-d
--mattr
=+sme
- | FileCheck
%s
--check-prefix
=CHECK-INST
7 // RUN
: llvm-mc
-triple
=aarch64
-filetype
=obj
-mattr
=+sme
< %s \
8 // RUN
: | llvm-objdump
-d
--mattr
=-sme
- | FileCheck
%s
--check-prefix
=CHECK-UNKNOWN
9 // Disassemble encoding
and check the re-encoding
(-show-encoding
) matches.
10 // RUN
: llvm-mc
-triple
=aarch64
-show-encoding
-mattr
=+sme
< %s \
11 // RUN
: | sed
'/.text/d' | sed
's/.*encoding: //g' \
12 // RUN
: | llvm-mc
-triple
=aarch64
-mattr
=+sme
-disassemble
-show-encoding \
13 // RUN
: | FileCheck
%s
--check-prefixes
=CHECK-ENCODING
,CHECK-INST
16 // CHECK-INST
: zero
{}
17 // CHECK-ENCODING
: [0x00,0x00,0x08,0xc0]
18 // CHECK-ERROR
: instruction requires
: sme
19 // CHECK-UNKNOWN
: c0080000
<unknown
>
21 zero
{za0.d
, za2.d
, za4.d
, za6.d
}
22 // CHECK-INST
: zero
{za0.h
}
23 // CHECK-ENCODING
: [0x55,0x00,0x08,0xc0]
24 // CHECK-ERROR
: instruction requires
: sme
25 // CHECK-UNKNOWN
: c0080055
<unknown
>
27 zero
{za0.d
, za1.d
, za2.d
, za4.d
, za5.d
, za7.d
}
28 // CHECK-INST
: zero
{za0.d
, za1.d
, za2.d
, za4.d
, za5.d
, za7.d
}
29 // CHECK-ENCODING
: [0xb7,0x00,0x08,0xc0]
30 // CHECK-ERROR
: instruction requires
: sme
31 // CHECK-UNKNOWN
: c00800b7
<unknown
>
33 zero
{za0.d
, za1.d
, za2.d
, za3.d
, za4.d
, za5.d
, za6.d
, za7.d
}
34 // CHECK-INST
: zero
{za
}
35 // CHECK-ENCODING
: [0xff,0x00,0x08,0xc0]
36 // CHECK-ERROR
: instruction requires
: sme
37 // CHECK-UNKNOWN
: c00800ff
<unknown
>
39 // --------------------------------------------------------------------------//
43 // CHECK-INST
: zero
{za
}
44 // CHECK-ENCODING
: [0xff,0x00,0x08,0xc0]
45 // CHECK-ERROR
: instruction requires
: sme
46 // CHECK-UNKNOWN
: c00800ff
<unknown
>
49 // CHECK-INST
: zero
{za
}
50 // CHECK-ENCODING
: [0xff,0x00,0x08,0xc0]
51 // CHECK-ERROR
: instruction requires
: sme
52 // CHECK-UNKNOWN
: c00800ff
<unknown
>
55 // CHECK-INST
: zero
{za0.h
}
56 // CHECK-ENCODING
: [0x55,0x00,0x08,0xc0]
57 // CHECK-ERROR
: instruction requires
: sme
58 // CHECK-UNKNOWN
: c0080055
<unknown
>
61 // CHECK-INST
: zero
{za1.h
}
62 // CHECK-ENCODING
: [0xaa,0x00,0x08,0xc0]
63 // CHECK-ERROR
: instruction requires
: sme
64 // CHECK-UNKNOWN
: c00800aa
<unknown
>
67 // CHECK-INST
: zero
{za
}
68 // CHECK-ENCODING
: [0xff,0x00,0x08,0xc0]
69 // CHECK-ERROR
: instruction requires
: sme
70 // CHECK-UNKNOWN
: c00800ff
<unknown
>
73 // CHECK-INST
: zero
{za0.s
}
74 // CHECK-ENCODING
: [0x11,0x00,0x08,0xc0]
75 // CHECK-ERROR
: instruction requires
: sme
76 // CHECK-UNKNOWN
: c0080011
<unknown
>
79 // CHECK-INST
: zero
{za1.s
}
80 // CHECK-ENCODING
: [0x22,0x00,0x08,0xc0]
81 // CHECK-ERROR
: instruction requires
: sme
82 // CHECK-UNKNOWN
: c0080022
<unknown
>
85 // CHECK-INST
: zero
{za2.s
}
86 // CHECK-ENCODING
: [0x44,0x00,0x08,0xc0]
87 // CHECK-ERROR
: instruction requires
: sme
88 // CHECK-UNKNOWN
: c0080044
<unknown
>
91 // CHECK-INST
: zero
{za3.s
}
92 // CHECK-ENCODING
: [0x88,0x00,0x08,0xc0]
93 // CHECK-ERROR
: instruction requires
: sme
94 // CHECK-UNKNOWN
: c0080088
<unknown
>
97 // CHECK-INST
: zero
{za0.s
,za1.s
}
98 // CHECK-ENCODING
: [0x33,0x00,0x08,0xc0]
99 // CHECK-ERROR
: instruction requires
: sme
100 // CHECK-UNKNOWN
: c0080033
<unknown
>
103 // CHECK-INST
: zero
{za0.h
}
104 // CHECK-ENCODING
: [0x55,0x00,0x08,0xc0]
105 // CHECK-ERROR
: instruction requires
: sme
106 // CHECK-UNKNOWN
: c0080055
<unknown
>
109 // CHECK-INST
: zero
{za0.s
,za3.s
}
110 // CHECK-ENCODING
: [0x99,0x00,0x08,0xc0]
111 // CHECK-ERROR
: instruction requires
: sme
112 // CHECK-UNKNOWN
: c0080099
<unknown
>
115 // CHECK-INST
: zero
{za1.s
,za2.s
}
116 // CHECK-ENCODING
: [0x66,0x00,0x08,0xc0]
117 // CHECK-ERROR
: instruction requires
: sme
118 // CHECK-UNKNOWN
: c0080066
<unknown
>
121 // CHECK-INST
: zero
{za1.h
}
122 // CHECK-ENCODING
: [0xaa,0x00,0x08,0xc0]
123 // CHECK-ERROR
: instruction requires
: sme
124 // CHECK-UNKNOWN
: c00800aa
<unknown
>
127 // CHECK-INST
: zero
{za2.s
,za3.s
}
128 // CHECK-ENCODING
: [0xcc,0x00,0x08,0xc0]
129 // CHECK-ERROR
: instruction requires
: sme
130 // CHECK-UNKNOWN
: c00800cc
<unknown
>
132 zero
{za0.s
,za1.s
,za2.s
}
133 // CHECK-INST
: zero
{za0.s
,za1.s
,za2.s
}
134 // CHECK-ENCODING
: [0x77,0x00,0x08,0xc0]
135 // CHECK-ERROR
: instruction requires
: sme
136 // CHECK-UNKNOWN
: c0080077
<unknown
>
138 zero
{za0.s
,za1.s
,za3.s
}
139 // CHECK-INST
: zero
{za0.s
,za1.s
,za3.s
}
140 // CHECK-ENCODING
: [0xbb,0x00,0x08,0xc0]
141 // CHECK-ERROR
: instruction requires
: sme
142 // CHECK-UNKNOWN
: c00800bb
<unknown
>
144 zero
{za0.s
,za2.s
,za3.s
}
145 // CHECK-INST
: zero
{za0.s
,za2.s
,za3.s
}
146 // CHECK-ENCODING
: [0xdd,0x00,0x08,0xc0]
147 // CHECK-ERROR
: instruction requires
: sme
148 // CHECK-UNKNOWN
: c00800dd
<unknown
>
150 zero
{za1.s
,za2.s
,za3.s
}
151 // CHECK-INST
: zero
{za1.s
,za2.s
,za3.s
}
152 // CHECK-ENCODING
: [0xee,0x00,0x08,0xc0]
153 // CHECK-ERROR
: instruction requires
: sme
154 // CHECK-UNKNOWN
: c00800ee
<unknown
>
156 zero
{za0.s
,za1.s
,za2.s
,za3.s
}
157 // CHECK-INST
: zero
{za
}
158 // CHECK-ENCODING
: [0xff,0x00,0x08,0xc0]
159 // CHECK-ERROR
: instruction requires
: sme
160 // CHECK-UNKNOWN
: c00800ff
<unknown
>
162 zero
{za0.d
,za1.d
,za2.d
,za3.d
,za4.d
,za5.d
,za6.d
,za7.d
}
163 // CHECK-INST
: zero
{za
}
164 // CHECK-ENCODING
: [0xff,0x00,0x08,0xc0]
165 // CHECK-ERROR
: instruction requires
: sme
166 // CHECK-UNKNOWN
: c00800ff
<unknown
>
168 zero
{za0.d
,za2.d
,za4.d
,za6.d
}
169 // CHECK-INST
: zero
{za0.h
}
170 // CHECK-ENCODING
: [0x55,0x00,0x08,0xc0]
171 // CHECK-ERROR
: instruction requires
: sme
172 // CHECK-UNKNOWN
: c0080055
<unknown
>
174 zero
{za1.d
,za3.d
,za5.d
,za7.d
}
175 // CHECK-INST
: zero
{za1.h
}
176 // CHECK-ENCODING
: [0xaa,0x00,0x08,0xc0]
177 // CHECK-ERROR
: instruction requires
: sme
178 // CHECK-UNKNOWN
: c00800aa
<unknown
>
181 // CHECK-INST
: zero
{za0.s
}
182 // CHECK-ENCODING
: [0x11,0x00,0x08,0xc0]
183 // CHECK-ERROR
: instruction requires
: sme
184 // CHECK-UNKNOWN
: c0080011
<unknown
>
187 // CHECK-INST
: zero
{za1.s
}
188 // CHECK-ENCODING
: [0x22,0x00,0x08,0xc0]
189 // CHECK-ERROR
: instruction requires
: sme
190 // CHECK-UNKNOWN
: c0080022
<unknown
>
193 // CHECK-INST
: zero
{za2.s
}
194 // CHECK-ENCODING
: [0x44,0x00,0x08,0xc0]
195 // CHECK-ERROR
: instruction requires
: sme
196 // CHECK-UNKNOWN
: c0080044
<unknown
>
199 // CHECK-INST
: zero
{za3.s
}
200 // CHECK-ENCODING
: [0x88,0x00,0x08,0xc0]
201 // CHECK-ERROR
: instruction requires
: sme
202 // CHECK-UNKNOWN
: c0080088
<unknown
>
204 zero
{za0.d
,za1.d
,za4.d
,za5.d
}
205 // CHECK-INST
: zero
{za0.s
,za1.s
}
206 // CHECK-ENCODING
: [0x33,0x00,0x08,0xc0]
207 // CHECK-ERROR
: instruction requires
: sme
208 // CHECK-UNKNOWN
: c0080033
<unknown
>
210 zero
{za0.d
,za3.d
,za4.d
,za7.d
}
211 // CHECK-INST
: zero
{za0.s
,za3.s
}
212 // CHECK-ENCODING
: [0x99,0x00,0x08,0xc0]
213 // CHECK-ERROR
: instruction requires
: sme
214 // CHECK-UNKNOWN
: c0080099
<unknown
>
216 zero
{za1.d
,za2.d
,za5.d
,za6.d
}
217 // CHECK-INST
: zero
{za1.s
,za2.s
}
218 // CHECK-ENCODING
: [0x66,0x00,0x08,0xc0]
219 // CHECK-ERROR
: instruction requires
: sme
220 // CHECK-UNKNOWN
: c0080066
<unknown
>
222 zero
{za2.d
,za3.d
,za6.d
,za7.d
}
223 // CHECK-INST
: zero
{za2.s
,za3.s
}
224 // CHECK-ENCODING
: [0xcc,0x00,0x08,0xc0]
225 // CHECK-ERROR
: instruction requires
: sme
226 // CHECK-UNKNOWN
: c00800cc
<unknown
>
228 zero
{za0.d
,za1.d
,za2.d
,za4.d
,za5.d
,za6.d
}
229 // CHECK-INST
: zero
{za0.s
,za1.s
,za2.s
}
230 // CHECK-ENCODING
: [0x77,0x00,0x08,0xc0]
231 // CHECK-ERROR
: instruction requires
: sme
232 // CHECK-UNKNOWN
: c0080077
<unknown
>
234 zero
{za0.d
,za1.d
,za3.d
,za4.d
,za5.d
,za7.d
}
235 // CHECK-INST
: zero
{za0.s
,za1.s
,za3.s
}
236 // CHECK-ENCODING
: [0xbb,0x00,0x08,0xc0]
237 // CHECK-ERROR
: instruction requires
: sme
238 // CHECK-UNKNOWN
: c00800bb
<unknown
>
240 zero
{za0.d
,za2.d
,za3.d
,za4.d
,za6.d
,za7.d
}
241 // CHECK-INST
: zero
{za0.s
,za2.s
,za3.s
}
242 // CHECK-ENCODING
: [0xdd,0x00,0x08,0xc0]
243 // CHECK-ERROR
: instruction requires
: sme
244 // CHECK-UNKNOWN
: c00800dd
<unknown
>
246 zero
{za1.d
,za2.d
,za3.d
,za5.d
,za6.d
,za7.d
}
247 // CHECK-INST
: zero
{za1.s
,za2.s
,za3.s
}
248 // CHECK-ENCODING
: [0xee,0x00,0x08,0xc0]
249 // CHECK-ERROR
: instruction requires
: sme
250 // CHECK-UNKNOWN
: c00800ee
<unknown
>