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
13 // ---------------------------------------------------------------------------//
14 // Test
64-bit form
(x0
) and its aliases
15 // ---------------------------------------------------------------------------//
17 // CHECK-INST
: uqdecb x0
18 // CHECK-ENCODING
: [0xe0,0xff,0x30,0x04]
19 // CHECK-ERROR
: instruction requires
: sve
or sme
20 // CHECK-UNKNOWN
: 0430ffe0
<unknown
>
23 // CHECK-INST
: uqdecb x0
24 // CHECK-ENCODING
: [0xe0,0xff,0x30,0x04]
25 // CHECK-ERROR
: instruction requires
: sve
or sme
26 // CHECK-UNKNOWN
: 0430ffe0
<unknown
>
28 uqdecb x0
, all
, mul #1
29 // CHECK-INST
: uqdecb x0
30 // CHECK-ENCODING
: [0xe0,0xff,0x30,0x04]
31 // CHECK-ERROR
: instruction requires
: sve
or sme
32 // CHECK-UNKNOWN
: 0430ffe0
<unknown
>
34 uqdecb x0
, all
, mul #16
35 // CHECK-INST
: uqdecb x0
, all
, mul #16
36 // CHECK-ENCODING
: [0xe0,0xff,0x3f,0x04]
37 // CHECK-ERROR
: instruction requires
: sve
or sme
38 // CHECK-UNKNOWN
: 043fffe0
<unknown
>
41 // ---------------------------------------------------------------------------//
42 // Test
32-bit form
(w0
) and its aliases
43 // ---------------------------------------------------------------------------//
46 // CHECK-INST
: uqdecb w0
47 // CHECK-ENCODING
: [0xe0,0xff,0x20,0x04]
48 // CHECK-ERROR
: instruction requires
: sve
or sme
49 // CHECK-UNKNOWN
: 0420ffe0
<unknown
>
52 // CHECK-INST
: uqdecb w0
53 // CHECK-ENCODING
: [0xe0,0xff,0x20,0x04]
54 // CHECK-ERROR
: instruction requires
: sve
or sme
55 // CHECK-UNKNOWN
: 0420ffe0
<unknown
>
57 uqdecb w0
, all
, mul #1
58 // CHECK-INST
: uqdecb w0
59 // CHECK-ENCODING
: [0xe0,0xff,0x20,0x04]
60 // CHECK-ERROR
: instruction requires
: sve
or sme
61 // CHECK-UNKNOWN
: 0420ffe0
<unknown
>
63 uqdecb w0
, all
, mul #16
64 // CHECK-INST
: uqdecb w0
, all
, mul #16
65 // CHECK-ENCODING
: [0xe0,0xff,0x2f,0x04]
66 // CHECK-ERROR
: instruction requires
: sve
or sme
67 // CHECK-UNKNOWN
: 042fffe0
<unknown
>
70 // CHECK-INST
: uqdecb w0
, pow2
71 // CHECK-ENCODING
: [0x00,0xfc,0x20,0x04]
72 // CHECK-ERROR
: instruction requires
: sve
or sme
73 // CHECK-UNKNOWN
: 0420fc00
<unknown
>
75 uqdecb w0
, pow2
, mul #16
76 // CHECK-INST
: uqdecb w0
, pow2
, mul #16
77 // CHECK-ENCODING
: [0x00,0xfc,0x2f,0x04]
78 // CHECK-ERROR
: instruction requires
: sve
or sme
79 // CHECK-UNKNOWN
: 042ffc00
<unknown
>
82 // ---------------------------------------------------------------------------//
83 // Test all patterns for
64-bit form
84 // ---------------------------------------------------------------------------//
87 // CHECK-INST
: uqdecb x0
, pow2
88 // CHECK-ENCODING
: [0x00,0xfc,0x30,0x04]
89 // CHECK-ERROR
: instruction requires
: sve
or sme
90 // CHECK-UNKNOWN
: 0430fc00
<unknown
>
93 // CHECK-INST
: uqdecb x0
, vl1
94 // CHECK-ENCODING
: [0x20,0xfc,0x30,0x04]
95 // CHECK-ERROR
: instruction requires
: sve
or sme
96 // CHECK-UNKNOWN
: 0430fc20
<unknown
>
99 // CHECK-INST
: uqdecb x0
, vl2
100 // CHECK-ENCODING
: [0x40,0xfc,0x30,0x04]
101 // CHECK-ERROR
: instruction requires
: sve
or sme
102 // CHECK-UNKNOWN
: 0430fc40
<unknown
>
105 // CHECK-INST
: uqdecb x0
, vl3
106 // CHECK-ENCODING
: [0x60,0xfc,0x30,0x04]
107 // CHECK-ERROR
: instruction requires
: sve
or sme
108 // CHECK-UNKNOWN
: 0430fc60
<unknown
>
111 // CHECK-INST
: uqdecb x0
, vl4
112 // CHECK-ENCODING
: [0x80,0xfc,0x30,0x04]
113 // CHECK-ERROR
: instruction requires
: sve
or sme
114 // CHECK-UNKNOWN
: 0430fc80
<unknown
>
117 // CHECK-INST
: uqdecb x0
, vl5
118 // CHECK-ENCODING
: [0xa0,0xfc,0x30,0x04]
119 // CHECK-ERROR
: instruction requires
: sve
or sme
120 // CHECK-UNKNOWN
: 0430fca0
<unknown
>
123 // CHECK-INST
: uqdecb x0
, vl6
124 // CHECK-ENCODING
: [0xc0,0xfc,0x30,0x04]
125 // CHECK-ERROR
: instruction requires
: sve
or sme
126 // CHECK-UNKNOWN
: 0430fcc0
<unknown
>
129 // CHECK-INST
: uqdecb x0
, vl7
130 // CHECK-ENCODING
: [0xe0,0xfc,0x30,0x04]
131 // CHECK-ERROR
: instruction requires
: sve
or sme
132 // CHECK-UNKNOWN
: 0430fce0
<unknown
>
135 // CHECK-INST
: uqdecb x0
, vl8
136 // CHECK-ENCODING
: [0x00,0xfd,0x30,0x04]
137 // CHECK-ERROR
: instruction requires
: sve
or sme
138 // CHECK-UNKNOWN
: 0430fd00
<unknown
>
141 // CHECK-INST
: uqdecb x0
, vl16
142 // CHECK-ENCODING
: [0x20,0xfd,0x30,0x04]
143 // CHECK-ERROR
: instruction requires
: sve
or sme
144 // CHECK-UNKNOWN
: 0430fd20
<unknown
>
147 // CHECK-INST
: uqdecb x0
, vl32
148 // CHECK-ENCODING
: [0x40,0xfd,0x30,0x04]
149 // CHECK-ERROR
: instruction requires
: sve
or sme
150 // CHECK-UNKNOWN
: 0430fd40
<unknown
>
153 // CHECK-INST
: uqdecb x0
, vl64
154 // CHECK-ENCODING
: [0x60,0xfd,0x30,0x04]
155 // CHECK-ERROR
: instruction requires
: sve
or sme
156 // CHECK-UNKNOWN
: 0430fd60
<unknown
>
159 // CHECK-INST
: uqdecb x0
, vl128
160 // CHECK-ENCODING
: [0x80,0xfd,0x30,0x04]
161 // CHECK-ERROR
: instruction requires
: sve
or sme
162 // CHECK-UNKNOWN
: 0430fd80
<unknown
>
165 // CHECK-INST
: uqdecb x0
, vl256
166 // CHECK-ENCODING
: [0xa0,0xfd,0x30,0x04]
167 // CHECK-ERROR
: instruction requires
: sve
or sme
168 // CHECK-UNKNOWN
: 0430fda0
<unknown
>
171 // CHECK-INST
: uqdecb x0
, #14
172 // CHECK-ENCODING
: [0xc0,0xfd,0x30,0x04]
173 // CHECK-ERROR
: instruction requires
: sve
or sme
174 // CHECK-UNKNOWN
: 0430fdc0
<unknown
>
177 // CHECK-INST
: uqdecb x0
, #15
178 // CHECK-ENCODING
: [0xe0,0xfd,0x30,0x04]
179 // CHECK-ERROR
: instruction requires
: sve
or sme
180 // CHECK-UNKNOWN
: 0430fde0
<unknown
>
183 // CHECK-INST
: uqdecb x0
, #16
184 // CHECK-ENCODING
: [0x00,0xfe,0x30,0x04]
185 // CHECK-ERROR
: instruction requires
: sve
or sme
186 // CHECK-UNKNOWN
: 0430fe00
<unknown
>
189 // CHECK-INST
: uqdecb x0
, #17
190 // CHECK-ENCODING
: [0x20,0xfe,0x30,0x04]
191 // CHECK-ERROR
: instruction requires
: sve
or sme
192 // CHECK-UNKNOWN
: 0430fe20
<unknown
>
195 // CHECK-INST
: uqdecb x0
, #18
196 // CHECK-ENCODING
: [0x40,0xfe,0x30,0x04]
197 // CHECK-ERROR
: instruction requires
: sve
or sme
198 // CHECK-UNKNOWN
: 0430fe40
<unknown
>
201 // CHECK-INST
: uqdecb x0
, #19
202 // CHECK-ENCODING
: [0x60,0xfe,0x30,0x04]
203 // CHECK-ERROR
: instruction requires
: sve
or sme
204 // CHECK-UNKNOWN
: 0430fe60
<unknown
>
207 // CHECK-INST
: uqdecb x0
, #20
208 // CHECK-ENCODING
: [0x80,0xfe,0x30,0x04]
209 // CHECK-ERROR
: instruction requires
: sve
or sme
210 // CHECK-UNKNOWN
: 0430fe80
<unknown
>
213 // CHECK-INST
: uqdecb x0
, #21
214 // CHECK-ENCODING
: [0xa0,0xfe,0x30,0x04]
215 // CHECK-ERROR
: instruction requires
: sve
or sme
216 // CHECK-UNKNOWN
: 0430fea0
<unknown
>
219 // CHECK-INST
: uqdecb x0
, #22
220 // CHECK-ENCODING
: [0xc0,0xfe,0x30,0x04]
221 // CHECK-ERROR
: instruction requires
: sve
or sme
222 // CHECK-UNKNOWN
: 0430fec0
<unknown
>
225 // CHECK-INST
: uqdecb x0
, #23
226 // CHECK-ENCODING
: [0xe0,0xfe,0x30,0x04]
227 // CHECK-ERROR
: instruction requires
: sve
or sme
228 // CHECK-UNKNOWN
: 0430fee0
<unknown
>
231 // CHECK-INST
: uqdecb x0
, #24
232 // CHECK-ENCODING
: [0x00,0xff,0x30,0x04]
233 // CHECK-ERROR
: instruction requires
: sve
or sme
234 // CHECK-UNKNOWN
: 0430ff00
<unknown
>
237 // CHECK-INST
: uqdecb x0
, #25
238 // CHECK-ENCODING
: [0x20,0xff,0x30,0x04]
239 // CHECK-ERROR
: instruction requires
: sve
or sme
240 // CHECK-UNKNOWN
: 0430ff20
<unknown
>
243 // CHECK-INST
: uqdecb x0
, #26
244 // CHECK-ENCODING
: [0x40,0xff,0x30,0x04]
245 // CHECK-ERROR
: instruction requires
: sve
or sme
246 // CHECK-UNKNOWN
: 0430ff40
<unknown
>
249 // CHECK-INST
: uqdecb x0
, #27
250 // CHECK-ENCODING
: [0x60,0xff,0x30,0x04]
251 // CHECK-ERROR
: instruction requires
: sve
or sme
252 // CHECK-UNKNOWN
: 0430ff60
<unknown
>
255 // CHECK-INST
: uqdecb x0
, #28
256 // CHECK-ENCODING
: [0x80,0xff,0x30,0x04]
257 // CHECK-ERROR
: instruction requires
: sve
or sme
258 // CHECK-UNKNOWN
: 0430ff80
<unknown
>