1 // RUN
: not llvm-mc
-triple aarch64-none-linux-gnu
-show-encoding
-mattr
=+v8.4
a,+xs
< %s
2>%t | FileCheck
%s
2 // RUN
: FileCheck
--check-prefix
=CHECK-ERR
%s
< %t
3 // RUN
: not llvm-mc
-triple aarch64-none-linux-gnu
-show-encoding
-mattr
=+v8.7
a < %s
2>%t | FileCheck
%s
4 // RUN
: FileCheck
--check-prefix
=CHECK-ERR
%s
< %t
5 // RUN
: not llvm-mc
-triple aarch64-none-linux-gnu
-mattr
=+v8.4
a < %s
2> %t
6 // RUN
: FileCheck
--check-prefixes
=CHECK-ERR
,CHECK-NO-XS-ERR
%s
< %t
16 // CHECK
: dsb oshnxs
// encoding
: [0x3f,0x32,0x03,0xd5]
17 // CHECK
: dsb nshnxs
// encoding
: [0x3f,0x36,0x03,0xd5]
18 // CHECK
: dsb ishnxs
// encoding
: [0x3f,0x3a,0x03,0xd5]
19 // CHECK
: dsb synxs
// encoding
: [0x3f,0x3e,0x03,0xd5]
20 // CHECK
: dsb oshnxs
// encoding
: [0x3f,0x32,0x03,0xd5]
21 // CHECK
: dsb nshnxs
// encoding
: [0x3f,0x36,0x03,0xd5]
22 // CHECK
: dsb ishnxs
// encoding
: [0x3f,0x3a,0x03,0xd5]
23 // CHECK
: dsb synxs
// encoding
: [0x3f,0x3e,0x03,0xd5]
24 // CHECK-NO-XS-ERR
: [[@LINE-
16]]:3: error
: instruction requires
: xs
25 // CHECK-NO-XS-ERR
: [[@LINE-
16]]:3: error
: instruction requires
: xs
26 // CHECK-NO-XS-ERR
: [[@LINE-
16]]:3: error
: instruction requires
: xs
27 // CHECK-NO-XS-ERR
: [[@LINE-
16]]:3: error
: instruction requires
: xs
28 // CHECK-NO-XS-ERR
: [[@LINE-
16]]:3: error
: instruction requires
: xs
29 // CHECK-NO-XS-ERR
: [[@LINE-
16]]:3: error
: instruction requires
: xs
30 // CHECK-NO-XS-ERR
: [[@LINE-
16]]:3: error
: instruction requires
: xs
31 // CHECK-NO-XS-ERR
: [[@LINE-
16]]:3: error
: instruction requires
: xs
35 // CHECK-ERR
: [[@LINE-
2]]:8: error
: barrier operand out of range
36 // CHECK-ERR
: [[@LINE-
2]]:7: error
: invalid barrier option name
39 tlbi ipas2le1isnxs
, x1
70 // CHECK
: tlbi ipas2e1isnxs
, x1
// encoding
: [0x21,0x90,0x0c,0xd5]
71 // CHECK
: tlbi ipas2le1isnxs
, x1
// encoding
: [0xa1,0x90,0x0c,0xd5]
72 // CHECK
: tlbi vmalle1isnxs
// encoding
: [0x1f,0x93,0x08,0xd5]
73 // CHECK
: tlbi alle2isnxs
// encoding
: [0x1f,0x93,0x0c,0xd5]
74 // CHECK
: tlbi alle3isnxs
// encoding
: [0x1f,0x93,0x0e,0xd5]
75 // CHECK
: tlbi vae1isnxs
, x1
// encoding
: [0x21,0x93,0x08,0xd5]
76 // CHECK
: tlbi vae2isnxs
, x1
// encoding
: [0x21,0x93,0x0c,0xd5]
77 // CHECK
: tlbi vae3isnxs
, x1
// encoding
: [0x21,0x93,0x0e,0xd5]
78 // CHECK
: tlbi aside1isnxs
, x1
// encoding
: [0x41,0x93,0x08,0xd5]
79 // CHECK
: tlbi vaae1isnxs
, x1
// encoding
: [0x61,0x93,0x08,0xd5]
80 // CHECK
: tlbi alle1isnxs
// encoding
: [0x9f,0x93,0x0c,0xd5]
81 // CHECK
: tlbi vale1isnxs
, x1
// encoding
: [0xa1,0x93,0x08,0xd5]
82 // CHECK
: tlbi vale2isnxs
, x1
// encoding
: [0xa1,0x93,0x0c,0xd5]
83 // CHECK
: tlbi vale3isnxs
, x1
// encoding
: [0xa1,0x93,0x0e,0xd5]
84 // CHECK
: tlbi vmalls12e1isnxs
// encoding
: [0xdf,0x93,0x0c,0xd5]
85 // CHECK
: tlbi vaale1isnxs
, x1
// encoding
: [0xe1,0x93,0x08,0xd5]
86 // CHECK
: tlbi ipas2e1nxs
, x1
// encoding
: [0x21,0x94,0x0c,0xd5]
87 // CHECK
: tlbi ipas2le1nxs
, x1
// encoding
: [0xa1,0x94,0x0c,0xd5]
88 // CHECK
: tlbi vmalle1nxs
// encoding
: [0x1f,0x97,0x08,0xd5]
89 // CHECK
: tlbi alle2nxs
// encoding
: [0x1f,0x97,0x0c,0xd5]
90 // CHECK
: tlbi alle3nxs
// encoding
: [0x1f,0x97,0x0e,0xd5]
91 // CHECK
: tlbi vae1nxs
, x1
// encoding
: [0x21,0x97,0x08,0xd5]
92 // CHECK
: tlbi vae2nxs
, x1
// encoding
: [0x21,0x97,0x0c,0xd5]
93 // CHECK
: tlbi vae3nxs
, x1
// encoding
: [0x21,0x97,0x0e,0xd5]
94 // CHECK
: tlbi aside1nxs
, x1
// encoding
: [0x41,0x97,0x08,0xd5]
95 // CHECK
: tlbi vaae1nxs
, x1
// encoding
: [0x61,0x97,0x08,0xd5]
96 // CHECK
: tlbi alle1nxs
// encoding
: [0x9f,0x97,0x0c,0xd5]
97 // CHECK
: tlbi vale1nxs
, x1
// encoding
: [0xa1,0x97,0x08,0xd5]
98 // CHECK
: tlbi vale2nxs
, x1
// encoding
: [0xa1,0x97,0x0c,0xd5]
99 // CHECK
: tlbi vale3nxs
, x1
// encoding
: [0xa1,0x97,0x0e,0xd5]
100 // CHECK
: tlbi vmalls12e1nxs
// encoding
: [0xdf,0x97,0x0c,0xd5]
101 // CHECK
: tlbi vaale1nxs
, x1
// encoding
: [0xe1,0x97,0x08,0xd5]
102 // CHECK_NO_XS_ERR
: [[@LINE-
64]]:8: error
: TLBI IPAS2E1ISnXS requires
: xs
103 // CHECK_NO_XS_ERR
: [[@LINE-
64]]:8: error
: TLBI IPAS2LE1ISnXS requires
: xs
104 // CHECK_NO_XS_ERR
: [[@LINE-
64]]:8: error
: TLBI VMALLE1ISnXS requires
: xs
105 // CHECK_NO_XS_ERR
: [[@LINE-
64]]:8: error
: TLBI ALLE2ISnXS requires
: xs
106 // CHECK_NO_XS_ERR
: [[@LINE-
64]]:8: error
: TLBI ALLE3ISnXS requires
: xs
107 // CHECK_NO_XS_ERR
: [[@LINE-
64]]:8: error
: TLBI VAE1ISnXS requires
: xs
108 // CHECK_NO_XS_ERR
: [[@LINE-
64]]:8: error
: TLBI VAE2ISnXS requires
: xs
109 // CHECK_NO_XS_ERR
: [[@LINE-
64]]:8: error
: TLBI VAE3ISnXS requires
: xs
110 // CHECK_NO_XS_ERR
: [[@LINE-
64]]:8: error
: TLBI ASIDE1ISnXS requires
: xs
111 // CHECK_NO_XS_ERR
: [[@LINE-
64]]:8: error
: TLBI VAAE1ISnXS requires
: xs
112 // CHECK_NO_XS_ERR
: [[@LINE-
64]]:8: error
: TLBI ALLE1ISnXS requires
: xs
113 // CHECK_NO_XS_ERR
: [[@LINE-
64]]:8: error
: TLBI VALE1ISnXS requires
: xs
114 // CHECK_NO_XS_ERR
: [[@LINE-
64]]:8: error
: TLBI VALE2ISnXS requires
: xs
115 // CHECK_NO_XS_ERR
: [[@LINE-
64]]:8: error
: TLBI VALE3ISnXS requires
: xs
116 // CHECK_NO_XS_ERR
: [[@LINE-
64]]:8: error
: TLBI VMALLS12E1ISnXS requires
: xs
117 // CHECK_NO_XS_ERR
: [[@LINE-
64]]:8: error
: TLBI VAALE1ISnXS requires
: xs
118 // CHECK_NO_XS_ERR
: [[@LINE-
64]]:8: error
: TLBI IPAS2E1nXS requires
: xs
119 // CHECK_NO_XS_ERR
: [[@LINE-
64]]:8: error
: TLBI IPAS2LE1nXS requires
: xs
120 // CHECK_NO_XS_ERR
: [[@LINE-
64]]:8: error
: TLBI VMALLE1nXS requires
: xs
121 // CHECK_NO_XS_ERR
: [[@LINE-
64]]:8: error
: TLBI ALLE2nXS requires
: xs
122 // CHECK_NO_XS_ERR
: [[@LINE-
64]]:8: error
: TLBI ALLE3nXS requires
: xs
123 // CHECK_NO_XS_ERR
: [[@LINE-
64]]:8: error
: TLBI VAE1nXS requires
: xs
124 // CHECK_NO_XS_ERR
: [[@LINE-
64]]:8: error
: TLBI VAE2nXS requires
: xs
125 // CHECK_NO_XS_ERR
: [[@LINE-
64]]:8: error
: TLBI VAE3nXS requires
: xs
126 // CHECK_NO_XS_ERR
: [[@LINE-
64]]:8: error
: TLBI ASIDE1nXS requires
: xs
127 // CHECK_NO_XS_ERR
: [[@LINE-
64]]:8: error
: TLBI VAAE1nXS requires
: xs
128 // CHECK_NO_XS_ERR
: [[@LINE-
64]]:8: error
: TLBI ALLE1nXS requires
: xs
129 // CHECK_NO_XS_ERR
: [[@LINE-
64]]:8: error
: TLBI VALE1nXS requires
: xs
130 // CHECK_NO_XS_ERR
: [[@LINE-
64]]:8: error
: TLBI VALE2nXS requires
: xs
131 // CHECK_NO_XS_ERR
: [[@LINE-
64]]:8: error
: TLBI VALE2nXS requires
: xs
132 // CHECK_NO_XS_ERR
: [[@LINE-
64]]:8: error
: TLBI VALE3nXS requires
: xs
133 // CHECK_NO_XS_ERR
: [[@LINE-
64]]:8: error
: TLBI VMALLS12E1nXS requires
: xs
134 // CHECK_NO_XS_ERR
: [[@LINE-
64]]:8: error
: TLBI VAALE1nXS requires
: xs
142 tlbi ipas2e1osnxs
, x1
143 tlbi ipas2le1osnxs
, x1
159 tlbi rvaale1isnxs
, x1
163 tlbi rvaale1osnxs
, x1
164 tlbi ripas2e1isnxs
, x1
165 tlbi ripas2le1isnxs
, x1
167 tlbi ripas2le1nxs
, x1
168 tlbi ripas2e1osnxs
, x1
169 tlbi ripas2le1osnxs
, x1
182 // CHECK
: tlbi vmalle1osnxs
// encoding
: [0x1f,0x91,0x08,0xd5]
183 // CHECK
: tlbi vae1osnxs
, x1
// encoding
: [0x21,0x91,0x08,0xd5]
184 // CHECK
: tlbi aside1osnxs
, x1
// encoding
: [0x41,0x91,0x08,0xd5]
185 // CHECK
: tlbi vaae1osnxs
, x1
// encoding
: [0x61,0x91,0x08,0xd5]
186 // CHECK
: tlbi vale1osnxs
, x1
// encoding
: [0xa1,0x91,0x08,0xd5]
187 // CHECK
: tlbi vaale1osnxs
, x1
// encoding
: [0xe1,0x91,0x08,0xd5]
188 // CHECK
: tlbi ipas2e1osnxs
, x1
// encoding
: [0x01,0x94,0x0c,0xd5]
189 // CHECK
: tlbi ipas2le1osnxs
, x1
// encoding
: [0x81,0x94,0x0c,0xd5]
190 // CHECK
: tlbi vae2osnxs
, x1
// encoding
: [0x21,0x91,0x0c,0xd5]
191 // CHECK
: tlbi vale2osnxs
, x1
// encoding
: [0xa1,0x91,0x0c,0xd5]
192 // CHECK
: tlbi vmalls12e1osnxs
// encoding
: [0xdf,0x91,0x0c,0xd5]
193 // CHECK
: tlbi vae3osnxs
, x1
// encoding
: [0x21,0x91,0x0e,0xd5]
194 // CHECK
: tlbi vale3osnxs
, x1
// encoding
: [0xa1,0x91,0x0e,0xd5]
195 // CHECK
: tlbi alle2osnxs
// encoding
: [0x1f,0x91,0x0c,0xd5]
196 // CHECK
: tlbi alle1osnxs
// encoding
: [0x9f,0x91,0x0c,0xd5]
197 // CHECK
: tlbi alle3osnxs
// encoding
: [0x1f,0x91,0x0e,0xd5]
198 // CHECK
: tlbi rvae1nxs
, x1
// encoding
: [0x21,0x96,0x08,0xd5]
199 // CHECK
: tlbi rvaae1nxs
, x1
// encoding
: [0x61,0x96,0x08,0xd5]
200 // CHECK
: tlbi rvale1nxs
, x1
// encoding
: [0xa1,0x96,0x08,0xd5]
201 // CHECK
: tlbi rvaale1nxs
, x1
// encoding
: [0xe1,0x96,0x08,0xd5]
202 // CHECK
: tlbi rvae1isnxs
, x1
// encoding
: [0x21,0x92,0x08,0xd5]
203 // CHECK
: tlbi rvaae1isnxs
, x1
// encoding
: [0x61,0x92,0x08,0xd5]
204 // CHECK
: tlbi rvale1isnxs
, x1
// encoding
: [0xa1,0x92,0x08,0xd5]
205 // CHECK
: tlbi rvaale1isnxs
, x1
// encoding
: [0xe1,0x92,0x08,0xd5]
206 // CHECK
: tlbi rvae1osnxs
, x1
// encoding
: [0x21,0x95,0x08,0xd5]
207 // CHECK
: tlbi rvaae1osnxs
, x1
// encoding
: [0x61,0x95,0x08,0xd5]
208 // CHECK
: tlbi rvale1osnxs
, x1
// encoding
: [0xa1,0x95,0x08,0xd5]
209 // CHECK
: tlbi rvaale1osnxs
, x1
// encoding
: [0xe1,0x95,0x08,0xd5]
210 // CHECK
: tlbi ripas2e1isnxs
, x1
// encoding
: [0x41,0x90,0x0c,0xd5]
211 // CHECK
: tlbi ripas2le1isnxs
, x1
// encoding
: [0xc1,0x90,0x0c,0xd5]
212 // CHECK
: tlbi ripas2e1nxs
, x1
// encoding
: [0x41,0x94,0x0c,0xd5]
213 // CHECK
: tlbi ripas2le1nxs
, x1
// encoding
: [0xc1,0x94,0x0c,0xd5]
214 // CHECK
: tlbi ripas2e1osnxs
, x1
// encoding
: [0x61,0x94,0x0c,0xd5]
215 // CHECK
: tlbi ripas2le1osnxs
, x1
// encoding
: [0xe1,0x94,0x0c,0xd5]
216 // CHECK
: tlbi rvae2nxs
, x1
// encoding
: [0x21,0x96,0x0c,0xd5]
217 // CHECK
: tlbi rvale2nxs
, x1
// encoding
: [0xa1,0x96,0x0c,0xd5]
218 // CHECK
: tlbi rvae2isnxs
, x1
// encoding
: [0x21,0x92,0x0c,0xd5]
219 // CHECK
: tlbi rvale2isnxs
, x1
// encoding
: [0xa1,0x92,0x0c,0xd5]
220 // CHECK
: tlbi rvae2osnxs
, x1
// encoding
: [0x21,0x95,0x0c,0xd5]
221 // CHECK
: tlbi rvale2osnxs
, x1
// encoding
: [0xa1,0x95,0x0c,0xd5]
222 // CHECK
: tlbi rvae3nxs
, x1
// encoding
: [0x21,0x96,0x0e,0xd5]
223 // CHECK
: tlbi rvale3nxs
, x1
// encoding
: [0xa1,0x96,0x0e,0xd5]
224 // CHECK
: tlbi rvae3isnxs
, x1
// encoding
: [0x21,0x92,0x0e,0xd5]
225 // CHECK
: tlbi rvale3isnxs
, x1
// encoding
: [0xa1,0x92,0x0e,0xd5]
226 // CHECK
: tlbi rvae3osnxs
, x1
// encoding
: [0x21,0x95,0x0e,0xd5]
227 // CHECK
: tlbi rvale3osnxs
, x1
// encoding
: [0xa1,0x95,0x0e,0xd5]
228 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI VMALLE1OSnXS requires
: tlb-rmi
, xs
229 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI VAE1OSnXS requires
: tlb-rmi
, xs
230 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI ASIDE1OSnXS requires
: tlb-rmi
, xs
231 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI VAAE1OSnXS requires
: tlb-rmi
, xs
232 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI VALE1OSnXS requires
: tlb-rmi
, xs
233 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI VAALE1OSnXS requires
: tlb-rmi
, xs
234 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI IPAS2E1OSnXS requires
: tlb-rmi
, xs
235 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI IPAS2LE1OSnXS requires
: tlb-rmi
, xs
236 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI VAE2OSnXS requires
: tlb-rmi
, xs
237 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI VALE2OSnXS requires
: tlb-rmi
, xs
238 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI VMALLS12E1OSnXS requires
: tlb-rmi
, xs
239 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI VAE3OSnXS requires
: tlb-rmi
, xs
240 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI VALE3OSnXS requires
: tlb-rmi
, xs
241 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI ALLE2OSnXS requires
: tlb-rmi
, xs
242 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI ALLE1OSnXS requires
: tlb-rmi
, xs
243 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI ALLE3OSnXS requires
: tlb-rmi
, xs
244 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI RVAE1nXS requires
: tlb-rmi
, xs
245 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI RVAAE1nXS requires
: tlb-rmi
, xs
246 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI RVALE1nXS requires
: tlb-rmi
, xs
247 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI RVAALE1nXS requires
: tlb-rmi
, xs
248 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI RVAE1ISnXS requires
: tlb-rmi
, xs
249 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI RVAAE1ISnXS requires
: tlb-rmi
, xs
250 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI RVALE1ISnXS requires
: tlb-rmi
, xs
251 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI RVAALE1ISnXS requires
: tlb-rmi
, xs
252 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI RVAE1OSnXS requires
: tlb-rmi
, xs
253 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI RVAAE1OSnXS requires
: tlb-rmi
, xs
254 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI RVALE1OSnXS requires
: tlb-rmi
, xs
255 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI RVAALE1OSnXS requires
: tlb-rmi
, xs
256 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI RIPAS2E1ISnXS requires
: tlb-rmi
, xs
257 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI RIPAS2LE1ISnXS requires
: tlb-rmi
, xs
258 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI RIPAS2E1nXS requires
: tlb-rmi
, xs
259 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI RIPAS2LE1nXS requires
: tlb-rmi
, xs
260 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI RIPAS2E1OSnXS requires
: tlb-rmi
, xs
261 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI RIPAS2LE1OSnXS requires
: tlb-rmi
, xs
262 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI RVAE2nXS requires
: tlb-rmi
, xs
263 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI RVALE2nXS requires
: tlb-rmi
, xs
264 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI RVAE2ISnXS requires
: tlb-rmi
, xs
265 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI RVALE2ISnXS requires
: tlb-rmi
, xs
266 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI RVAE2OSnXS requires
: tlb-rmi
, xs
267 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI RVALE2OSnXS requires
: tlb-rmi
, xs
268 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI RVAE3nXS requires
: tlb-rmi
, xs
269 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI RVALE3nXS requires
: tlb-rmi
, xs
270 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI RVAE3ISnXS requires
: tlb-rmi
, xs
271 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI RVALE3ISnXS requires
: tlb-rmi
, xs
272 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI RVAE3OSnXS requires
: tlb-rmi
, xs
273 // CHECK_NO_XS_ERR
: [[@LINE-
92]]:8: error
: TLBI RVALE3OSnXS requires
: tlb-rmi
, xs