1 // RUN
: llvm-mc
-triple
=aarch64
-show-encoding
-mattr
=+sve
< %s \
2 // RUN
: | FileCheck
%s
--check-prefixes
=CHECK-ENCODING
,CHECK-INST
3 // RUN
: llvm-mc
-triple
=aarch64
-show-encoding
-mattr
=+sme
< %s \
4 // RUN
: | FileCheck
%s
--check-prefixes
=CHECK-ENCODING
,CHECK-INST
5 // RUN
: not llvm-mc
-triple
=aarch64
-show-encoding
< %s
2>&1 \
6 // RUN
: | FileCheck
%s
--check-prefix
=CHECK-ERROR
7 // RUN
: llvm-mc
-triple
=aarch64
-filetype
=obj
-mattr
=+sve
< %s \
8 // RUN
: | llvm-objdump
--no-print-imm-hex
-d
--mattr
=+sve
- | FileCheck
%s
--check-prefix
=CHECK-INST
9 // RUN
: llvm-mc
-triple
=aarch64
-filetype
=obj
-mattr
=+sve
< %s \
10 // RUN
: | llvm-objdump
--no-print-imm-hex
-d
--mattr
=-sve
- | FileCheck
%s
--check-prefix
=CHECK-UNKNOWN
12 // ---------------------------------------------------------------------------//
13 // Test
64-bit form
(x0
) and its aliases
14 // ---------------------------------------------------------------------------//
17 // CHECK-INST
: sqincb x0
18 // CHECK-ENCODING
: [0xe0,0xf3,0x30,0x04]
19 // CHECK-ERROR
: instruction requires
: sve
or sme
20 // CHECK-UNKNOWN
: 0430f3e0
<unknown
>
23 // CHECK-INST
: sqincb x0
24 // CHECK-ENCODING
: [0xe0,0xf3,0x30,0x04]
25 // CHECK-ERROR
: instruction requires
: sve
or sme
26 // CHECK-UNKNOWN
: 0430f3e0
<unknown
>
28 sqincb x0
, all
, mul #1
29 // CHECK-INST
: sqincb x0
30 // CHECK-ENCODING
: [0xe0,0xf3,0x30,0x04]
31 // CHECK-ERROR
: instruction requires
: sve
or sme
32 // CHECK-UNKNOWN
: 0430f3e0
<unknown
>
34 sqincb x0
, all
, mul #16
35 // CHECK-INST
: sqincb x0
, all
, mul #16
36 // CHECK-ENCODING
: [0xe0,0xf3,0x3f,0x04]
37 // CHECK-ERROR
: instruction requires
: sve
or sme
38 // CHECK-UNKNOWN
: 043ff3e0
<unknown
>
41 // ---------------------------------------------------------------------------//
42 // Test
32-bit form
(x0
, w0
) and its aliases
43 // ---------------------------------------------------------------------------//
46 // CHECK-INST
: sqincb x0
, w0
47 // CHECK-ENCODING
: [0xe0,0xf3,0x20,0x04]
48 // CHECK-ERROR
: instruction requires
: sve
or sme
49 // CHECK-UNKNOWN
: 0420f3e0
<unknown
>
52 // CHECK-INST
: sqincb x0
, w0
53 // CHECK-ENCODING
: [0xe0,0xf3,0x20,0x04]
54 // CHECK-ERROR
: instruction requires
: sve
or sme
55 // CHECK-UNKNOWN
: 0420f3e0
<unknown
>
57 sqincb x0
, w0
, all
, mul #1
58 // CHECK-INST
: sqincb x0
, w0
59 // CHECK-ENCODING
: [0xe0,0xf3,0x20,0x04]
60 // CHECK-ERROR
: instruction requires
: sve
or sme
61 // CHECK-UNKNOWN
: 0420f3e0
<unknown
>
63 sqincb x0
, w0
, all
, mul #16
64 // CHECK-INST
: sqincb x0
, w0
, all
, mul #16
65 // CHECK-ENCODING
: [0xe0,0xf3,0x2f,0x04]
66 // CHECK-ERROR
: instruction requires
: sve
or sme
67 // CHECK-UNKNOWN
: 042ff3e0
<unknown
>
70 // CHECK-INST
: sqincb x0
, w0
, pow2
71 // CHECK-ENCODING
: [0x00,0xf0,0x20,0x04]
72 // CHECK-ERROR
: instruction requires
: sve
or sme
73 // CHECK-UNKNOWN
: 0420f000
<unknown
>
75 sqincb x0
, w0
, pow2
, mul #16
76 // CHECK-INST
: sqincb x0
, w0
, pow2
, mul #16
77 // CHECK-ENCODING
: [0x00,0xf0,0x2f,0x04]
78 // CHECK-ERROR
: instruction requires
: sve
or sme
79 // CHECK-UNKNOWN
: 042ff000
<unknown
>
82 // ---------------------------------------------------------------------------//
83 // Test all patterns for
64-bit form
84 // ---------------------------------------------------------------------------//
87 // CHECK-INST
: sqincb x0
, pow2
88 // CHECK-ENCODING
: [0x00,0xf0,0x30,0x04]
89 // CHECK-ERROR
: instruction requires
: sve
or sme
90 // CHECK-UNKNOWN
: 0430f000
<unknown
>
93 // CHECK-INST
: sqincb x0
, vl1
94 // CHECK-ENCODING
: [0x20,0xf0,0x30,0x04]
95 // CHECK-ERROR
: instruction requires
: sve
or sme
96 // CHECK-UNKNOWN
: 0430f020
<unknown
>
99 // CHECK-INST
: sqincb x0
, vl2
100 // CHECK-ENCODING
: [0x40,0xf0,0x30,0x04]
101 // CHECK-ERROR
: instruction requires
: sve
or sme
102 // CHECK-UNKNOWN
: 0430f040
<unknown
>
105 // CHECK-INST
: sqincb x0
, vl3
106 // CHECK-ENCODING
: [0x60,0xf0,0x30,0x04]
107 // CHECK-ERROR
: instruction requires
: sve
or sme
108 // CHECK-UNKNOWN
: 0430f060
<unknown
>
111 // CHECK-INST
: sqincb x0
, vl4
112 // CHECK-ENCODING
: [0x80,0xf0,0x30,0x04]
113 // CHECK-ERROR
: instruction requires
: sve
or sme
114 // CHECK-UNKNOWN
: 0430f080
<unknown
>
117 // CHECK-INST
: sqincb x0
, vl5
118 // CHECK-ENCODING
: [0xa0,0xf0,0x30,0x04]
119 // CHECK-ERROR
: instruction requires
: sve
or sme
120 // CHECK-UNKNOWN
: 0430f0a0
<unknown
>
123 // CHECK-INST
: sqincb x0
, vl6
124 // CHECK-ENCODING
: [0xc0,0xf0,0x30,0x04]
125 // CHECK-ERROR
: instruction requires
: sve
or sme
126 // CHECK-UNKNOWN
: 0430f0c0
<unknown
>
129 // CHECK-INST
: sqincb x0
, vl7
130 // CHECK-ENCODING
: [0xe0,0xf0,0x30,0x04]
131 // CHECK-ERROR
: instruction requires
: sve
or sme
132 // CHECK-UNKNOWN
: 0430f0e0
<unknown
>
135 // CHECK-INST
: sqincb x0
, vl8
136 // CHECK-ENCODING
: [0x00,0xf1,0x30,0x04]
137 // CHECK-ERROR
: instruction requires
: sve
or sme
138 // CHECK-UNKNOWN
: 0430f100
<unknown
>
141 // CHECK-INST
: sqincb x0
, vl16
142 // CHECK-ENCODING
: [0x20,0xf1,0x30,0x04]
143 // CHECK-ERROR
: instruction requires
: sve
or sme
144 // CHECK-UNKNOWN
: 0430f120
<unknown
>
147 // CHECK-INST
: sqincb x0
, vl32
148 // CHECK-ENCODING
: [0x40,0xf1,0x30,0x04]
149 // CHECK-ERROR
: instruction requires
: sve
or sme
150 // CHECK-UNKNOWN
: 0430f140
<unknown
>
153 // CHECK-INST
: sqincb x0
, vl64
154 // CHECK-ENCODING
: [0x60,0xf1,0x30,0x04]
155 // CHECK-ERROR
: instruction requires
: sve
or sme
156 // CHECK-UNKNOWN
: 0430f160
<unknown
>
159 // CHECK-INST
: sqincb x0
, vl128
160 // CHECK-ENCODING
: [0x80,0xf1,0x30,0x04]
161 // CHECK-ERROR
: instruction requires
: sve
or sme
162 // CHECK-UNKNOWN
: 0430f180
<unknown
>
165 // CHECK-INST
: sqincb x0
, vl256
166 // CHECK-ENCODING
: [0xa0,0xf1,0x30,0x04]
167 // CHECK-ERROR
: instruction requires
: sve
or sme
168 // CHECK-UNKNOWN
: 0430f1a0
<unknown
>
171 // CHECK-INST
: sqincb x0
, #14
172 // CHECK-ENCODING
: [0xc0,0xf1,0x30,0x04]
173 // CHECK-ERROR
: instruction requires
: sve
or sme
174 // CHECK-UNKNOWN
: 0430f1c0
<unknown
>
177 // CHECK-INST
: sqincb x0
, #15
178 // CHECK-ENCODING
: [0xe0,0xf1,0x30,0x04]
179 // CHECK-ERROR
: instruction requires
: sve
or sme
180 // CHECK-UNKNOWN
: 0430f1e0
<unknown
>
183 // CHECK-INST
: sqincb x0
, #16
184 // CHECK-ENCODING
: [0x00,0xf2,0x30,0x04]
185 // CHECK-ERROR
: instruction requires
: sve
or sme
186 // CHECK-UNKNOWN
: 0430f200
<unknown
>
189 // CHECK-INST
: sqincb x0
, #17
190 // CHECK-ENCODING
: [0x20,0xf2,0x30,0x04]
191 // CHECK-ERROR
: instruction requires
: sve
or sme
192 // CHECK-UNKNOWN
: 0430f220
<unknown
>
195 // CHECK-INST
: sqincb x0
, #18
196 // CHECK-ENCODING
: [0x40,0xf2,0x30,0x04]
197 // CHECK-ERROR
: instruction requires
: sve
or sme
198 // CHECK-UNKNOWN
: 0430f240
<unknown
>
201 // CHECK-INST
: sqincb x0
, #19
202 // CHECK-ENCODING
: [0x60,0xf2,0x30,0x04]
203 // CHECK-ERROR
: instruction requires
: sve
or sme
204 // CHECK-UNKNOWN
: 0430f260
<unknown
>
207 // CHECK-INST
: sqincb x0
, #20
208 // CHECK-ENCODING
: [0x80,0xf2,0x30,0x04]
209 // CHECK-ERROR
: instruction requires
: sve
or sme
210 // CHECK-UNKNOWN
: 0430f280
<unknown
>
213 // CHECK-INST
: sqincb x0
, #21
214 // CHECK-ENCODING
: [0xa0,0xf2,0x30,0x04]
215 // CHECK-ERROR
: instruction requires
: sve
or sme
216 // CHECK-UNKNOWN
: 0430f2a0
<unknown
>
219 // CHECK-INST
: sqincb x0
, #22
220 // CHECK-ENCODING
: [0xc0,0xf2,0x30,0x04]
221 // CHECK-ERROR
: instruction requires
: sve
or sme
222 // CHECK-UNKNOWN
: 0430f2c0
<unknown
>
225 // CHECK-INST
: sqincb x0
, #23
226 // CHECK-ENCODING
: [0xe0,0xf2,0x30,0x04]
227 // CHECK-ERROR
: instruction requires
: sve
or sme
228 // CHECK-UNKNOWN
: 0430f2e0
<unknown
>
231 // CHECK-INST
: sqincb x0
, #24
232 // CHECK-ENCODING
: [0x00,0xf3,0x30,0x04]
233 // CHECK-ERROR
: instruction requires
: sve
or sme
234 // CHECK-UNKNOWN
: 0430f300
<unknown
>
237 // CHECK-INST
: sqincb x0
, #25
238 // CHECK-ENCODING
: [0x20,0xf3,0x30,0x04]
239 // CHECK-ERROR
: instruction requires
: sve
or sme
240 // CHECK-UNKNOWN
: 0430f320
<unknown
>
243 // CHECK-INST
: sqincb x0
, #26
244 // CHECK-ENCODING
: [0x40,0xf3,0x30,0x04]
245 // CHECK-ERROR
: instruction requires
: sve
or sme
246 // CHECK-UNKNOWN
: 0430f340
<unknown
>
249 // CHECK-INST
: sqincb x0
, #27
250 // CHECK-ENCODING
: [0x60,0xf3,0x30,0x04]
251 // CHECK-ERROR
: instruction requires
: sve
or sme
252 // CHECK-UNKNOWN
: 0430f360
<unknown
>
255 // CHECK-INST
: sqincb x0
, #28
256 // CHECK-ENCODING
: [0x80,0xf3,0x30,0x04]
257 // CHECK-ERROR
: instruction requires
: sve
or sme
258 // CHECK-UNKNOWN
: 0430f380
<unknown
>