1 // RUN
: not llvm-mc
-triple aarch64-none-linux-gnu
-show-encoding
-mattr
=+v8.4
a < %s
2> %t | FileCheck
%s
--check-prefix
=CHECK
2 // RUN
: FileCheck
--check-prefix
=CHECK-ERROR
< %t %s
3 // RUN
: not llvm-mc
-triple aarch64-none-linux-gnu
-show-encoding
-mattr
=+tlb-rmi
< %s
2> %t | FileCheck
%s
--check-prefix
=CHECK
4 // RUN
: FileCheck
--check-prefix
=CHECK-ERROR
< %t %s
5 // RUN
: not llvm-mc
-triple aarch64-none-linux-gnu
-show-encoding
-mattr
=-v8.4
a < %s
2>&1 | FileCheck
%s
--check-prefix
=CHECK-NO-V84
6 // RUN
: not llvm-mc
-triple aarch64-none-linux-gnu
-show-encoding
-mattr
=+v8.4
a,-tlb-rmi
< %s
2>&1 | FileCheck
%s
--check-prefix
=CHECK-NO-V84
8 // Outer shareable TLB maintenance instructions
:
27 //CHECK
: tlbi vmalle1os
// encoding
: [0x1f,0x81,0x08,0xd5]
28 //CHECK-NEXT
: tlbi vae1os
, xzr
// encoding
: [0x3f,0x81,0x08,0xd5]
29 //CHECK-NEXT
: tlbi vae1os
, x0
// encoding
: [0x20,0x81,0x08,0xd5]
30 //CHECK-NEXT
: tlbi aside1os
, x1
// encoding
: [0x41,0x81,0x08,0xd5]
31 //CHECK-NEXT
: tlbi vaae1os
, x2
// encoding
: [0x62,0x81,0x08,0xd5]
32 //CHECK-NEXT
: tlbi vale1os
, x3
// encoding
: [0xa3,0x81,0x08,0xd5]
33 //CHECK-NEXT
: tlbi vaale1os
, x4
// encoding
: [0xe4,0x81,0x08,0xd5]
34 //CHECK-NEXT
: tlbi ipas2e1os
, x5
// encoding
: [0x05,0x84,0x0c,0xd5]
35 //CHECK-NEXT
: tlbi ipas2le1os
, x6
// encoding
: [0x86,0x84,0x0c,0xd5]
36 //CHECK-NEXT
: tlbi vae2os
, x7
// encoding
: [0x27,0x81,0x0c,0xd5]
37 //CHECK-NEXT
: tlbi vale2os
, x8
// encoding
: [0xa8,0x81,0x0c,0xd5]
38 //CHECK-NEXT
: tlbi vmalls12e1os
// encoding
: [0xdf,0x81,0x0c,0xd5]
39 //CHECK-NEXT
: tlbi vae3os
, x9
// encoding
: [0x29,0x81,0x0e,0xd5]
40 //CHECK-NEXT
: tlbi vale3os
, x10
// encoding
: [0xaa,0x81,0x0e,0xd5]
41 //CHECK-NEXT
: tlbi alle2os
// encoding
: [0x1f,0x81,0x0c,0xd5]
42 //CHECK-NEXT
: tlbi alle1os
// encoding
: [0x9f,0x81,0x0c,0xd5]
43 //CHECK-NEXT
: tlbi alle3os
// encoding
: [0x1f,0x81,0x0e,0xd5]
47 //CHECK-ERROR
: error
: invalid operand for instruction
48 //CHECK-ERROR-NEXT
: tlbi vae1os
, sp
51 //CHECK-NO-V84
: error
: TLBI VMALLE1OS requires tlb-rmi
52 //CHECK-NO-V84-NEXT
: tlbi vmalle1os
53 //CHECK-NO-V84-NEXT
: ^
54 //CHECK-NO-V84-NEXT
: error
: TLBI VAE1OS requires tlb-rmi
55 //CHECK-NO-V84-NEXT
: tlbi vae1os
, xzr
56 //CHECK-NO-V84-NEXT
: ^
57 //CHECK-NO-V84-NEXT
: error
: TLBI VAE1OS requires tlb-rmi
58 //CHECK-NO-V84-NEXT
: tlbi vae1os
, x0
59 //CHECK-NO-V84-NEXT
: ^
60 //CHECK-NO-V84-NEXT
: error
: TLBI ASIDE1OS requires tlb-rmi
61 //CHECK-NO-V84-NEXT
: tlbi aside1os
, x1
62 //CHECK-NO-V84-NEXT
: ^
63 //CHECK-NO-V84-NEXT
: error
: TLBI VAAE1OS requires tlb-rmi
64 //CHECK-NO-V84-NEXT
: tlbi vaae1os
, x2
65 //CHECK-NO-V84-NEXT
: ^
66 //CHECK-NO-V84-NEXT
: error
: TLBI VALE1OS requires tlb-rmi
67 //CHECK-NO-V84-NEXT
: tlbi vale1os
, x3
68 //CHECK-NO-V84-NEXT
: ^
69 //CHECK-NO-V84-NEXT
: error
: TLBI VAALE1OS requires tlb-rmi
70 //CHECK-NO-V84-NEXT
: tlbi vaale1os
, x4
71 //CHECK-NO-V84-NEXT
: ^
72 //CHECK-NO-V84-NEXT
: error
: TLBI IPAS2E1OS requires tlb-rmi
73 //CHECK-NO-V84-NEXT
: tlbi ipas2e1os
, x5
74 //CHECK-NO-V84-NEXT
: ^
75 //CHECK-NO-V84-NEXT
: error
: TLBI IPAS2LE1OS requires tlb-rmi
76 //CHECK-NO-V84-NEXT
: tlbi ipas2le1os
, x6
77 //CHECK-NO-V84-NEXT
: ^
78 //CHECK-NO-V84-NEXT
: error
: TLBI VAE2OS requires tlb-rmi
79 //CHECK-NO-V84-NEXT
: tlbi vae2os
, x7
80 //CHECK-NO-V84-NEXT
: ^
81 //CHECK-NO-V84-NEXT
: error
: TLBI VALE2OS requires tlb-rmi
82 //CHECK-NO-V84-NEXT
: tlbi vale2os
, x8
83 //CHECK-NO-V84-NEXT
: ^
84 //CHECK-NO-V84-NEXT
: error
: TLBI VMALLS12E1OS requires tlb-rmi
85 //CHECK-NO-V84-NEXT
: tlbi vmalls12e1os
86 //CHECK-NO-V84-NEXT
: ^
87 //CHECK-NO-V84-NEXT
: error
: TLBI VAE3OS requires tlb-rmi
88 //CHECK-NO-V84-NEXT
: tlbi vae3os
, x9
89 //CHECK-NO-V84-NEXT
: ^
90 //CHECK-NO-V84-NEXT
: error
: TLBI VALE3OS requires tlb-rmi
91 //CHECK-NO-V84-NEXT
: tlbi vale3os
, x10
92 //CHECK-NO-V84-NEXT
: ^
93 //CHECK-NO-V84-NEXT
: error
: TLBI ALLE2OS requires tlb-rmi
94 //CHECK-NO-V84-NEXT
: tlbi alle2os
95 //CHECK-NO-V84-NEXT
: ^
96 //CHECK-NO-V84-NEXT
: error
: TLBI ALLE1OS requires tlb-rmi
97 //CHECK-NO-V84-NEXT
: tlbi alle1os
98 //CHECK-NO-V84-NEXT
: ^
99 //CHECK-NO-V84-NEXT
: error
: TLBI ALLE3OS requires tlb-rmi
100 //CHECK-NO-V84-NEXT
: tlbi alle3os
101 //CHECK-NO-V84-NEXT
: ^
103 // TLB Range maintenance instructions
:
136 //CHECK
: tlbi rvae1
, x3
// encoding
: [0x23,0x86,0x08,0xd5]
137 //CHECK-NEXT
: tlbi rvaae1
, x3
// encoding
: [0x63,0x86,0x08,0xd5]
138 //CHECK-NEXT
: tlbi rvale1
, x3
// encoding
: [0xa3,0x86,0x08,0xd5]
139 //CHECK-NEXT
: tlbi rvaale1
, x3
// encoding
: [0xe3,0x86,0x08,0xd5]
140 //CHECK-NEXT
: tlbi rvae1is
, x3
// encoding
: [0x23,0x82,0x08,0xd5]
141 //CHECK-NEXT
: tlbi rvaae1is
, x3
// encoding
: [0x63,0x82,0x08,0xd5]
142 //CHECK-NEXT
: tlbi rvale1is
, x3
// encoding
: [0xa3,0x82,0x08,0xd5]
143 //CHECK-NEXT
: tlbi rvaale1is
, x3
// encoding
: [0xe3,0x82,0x08,0xd5]
144 //CHECK-NEXT
: tlbi rvae1os
, x3
// encoding
: [0x23,0x85,0x08,0xd5]
145 //CHECK-NEXT
: tlbi rvaae1os
, x3
// encoding
: [0x63,0x85,0x08,0xd5]
146 //CHECK-NEXT
: tlbi rvale1os
, x3
// encoding
: [0xa3,0x85,0x08,0xd5]
147 //CHECK-NEXT
: tlbi rvaale1os
, x3
// encoding
: [0xe3,0x85,0x08,0xd5]
148 //CHECK-NEXT
: tlbi ripas2e1is
, x3
// encoding
: [0x43,0x80,0x0c,0xd5]
149 //CHECK-NEXT
: tlbi ripas2le1is
, x3
// encoding
: [0xc3,0x80,0x0c,0xd5]
150 //CHECK-NEXT
: tlbi ripas2e1
, x3
// encoding
: [0x43,0x84,0x0c,0xd5]
151 //CHECK-NEXT
: tlbi ripas2le1
, x3
// encoding
: [0xc3,0x84,0x0c,0xd5]
152 //CHECK-NEXT
: tlbi ripas2e1os
, x3
// encoding
: [0x63,0x84,0x0c,0xd5]
153 //CHECK-NEXT
: tlbi ripas2le1os
, x3
// encoding
: [0xe3,0x84,0x0c,0xd5]
154 //CHECK-NEXT
: tlbi rvae2
, x3
// encoding
: [0x23,0x86,0x0c,0xd5]
155 //CHECK-NEXT
: tlbi rvale2
, x3
// encoding
: [0xa3,0x86,0x0c,0xd5]
156 //CHECK-NEXT
: tlbi rvae2is
, x3
// encoding
: [0x23,0x82,0x0c,0xd5]
157 //CHECK-NEXT
: tlbi rvale2is
, x3
// encoding
: [0xa3,0x82,0x0c,0xd5]
158 //CHECK-NEXT
: tlbi rvae2os
, x3
// encoding
: [0x23,0x85,0x0c,0xd5]
159 //CHECK-NEXT
: tlbi rvale2os
, x3
// encoding
: [0xa3,0x85,0x0c,0xd5]
160 //CHECK-NEXT
: tlbi rvae3
, x3
// encoding
: [0x23,0x86,0x0e,0xd5]
161 //CHECK-NEXT
: tlbi rvale3
, x3
// encoding
: [0xa3,0x86,0x0e,0xd5]
162 //CHECK-NEXT
: tlbi rvae3is
, x3
// encoding
: [0x23,0x82,0x0e,0xd5]
163 //CHECK-NEXT
: tlbi rvale3is
, x3
// encoding
: [0xa3,0x82,0x0e,0xd5]
164 //CHECK-NEXT
: tlbi rvae3os
, x3
// encoding
: [0x23,0x85,0x0e,0xd5]
165 //CHECK-NEXT
: tlbi rvale3os
, x3
// encoding
: [0xa3,0x85,0x0e,0xd5]
166 //CHECK-NEXT
: tlbi rvale3os
, xzr
// encoding
: [0xbf,0x85,0x0e,0xd5]
170 //CHECK-ERROR
: error
: invalid operand for instruction
171 //CHECK-ERROR-NEXT
: tlbi rvae1
, sp
172 //CHECK-ERROR-NEXT
: ^
174 //CHECK-NO-V84
: error
: TLBI RVAE1 requires tlb-rmi
175 //CHECK-NO-V84-NEXT
: tlbi rvae1
, x3
176 //CHECK-NO-V84-NEXT
: ^
177 //CHECK-NO-V84-NEXT
: error
: TLBI RVAAE1 requires tlb-rmi
178 //CHECK-NO-V84-NEXT
: tlbi rvaae1
, x3
179 //CHECK-NO-V84-NEXT
: ^
180 //CHECK-NO-V84-NEXT
: error
: TLBI RVALE1 requires tlb-rmi
181 //CHECK-NO-V84-NEXT
: tlbi rvale1
, x3
182 //CHECK-NO-V84-NEXT
: ^
183 //CHECK-NO-V84-NEXT
: error
: TLBI RVAALE1 requires tlb-rmi
184 //CHECK-NO-V84-NEXT
: tlbi rvaale1
, x3
185 //CHECK-NO-V84-NEXT
: ^
186 //CHECK-NO-V84-NEXT
: error
: TLBI RVAE1IS requires tlb-rmi
187 //CHECK-NO-V84-NEXT
: tlbi rvae1is
, x3
188 //CHECK-NO-V84-NEXT
: ^
189 //CHECK-NO-V84-NEXT
: error
: TLBI RVAAE1IS requires tlb-rmi
190 //CHECK-NO-V84-NEXT
: tlbi rvaae1is
, x3
191 //CHECK-NO-V84-NEXT
: ^
192 //CHECK-NO-V84-NEXT
: error
: TLBI RVALE1IS requires tlb-rmi
193 //CHECK-NO-V84-NEXT
: tlbi rvale1is
, x3
194 //CHECK-NO-V84-NEXT
: ^
195 //CHECK-NO-V84-NEXT
: error
: TLBI RVAALE1IS requires tlb-rmi
196 //CHECK-NO-V84-NEXT
: tlbi rvaale1is
, x3
197 //CHECK-NO-V84-NEXT
: ^
198 //CHECK-NO-V84-NEXT
: error
: TLBI RVAE1OS requires tlb-rmi
199 //CHECK-NO-V84-NEXT
: tlbi rvae1os
, x3
200 //CHECK-NO-V84-NEXT
: ^
201 //CHECK-NO-V84-NEXT
: error
: TLBI RVAAE1OS requires tlb-rmi
202 //CHECK-NO-V84-NEXT
: tlbi rvaae1os
, x3
203 //CHECK-NO-V84-NEXT
: ^
204 //CHECK-NO-V84-NEXT
: error
: TLBI RVALE1OS requires tlb-rmi
205 //CHECK-NO-V84-NEXT
: tlbi rvale1os
, x3
206 //CHECK-NO-V84-NEXT
: ^
207 //CHECK-NO-V84-NEXT
: error
: TLBI RVAALE1OS requires tlb-rmi
208 //CHECK-NO-V84-NEXT
: tlbi rvaale1os
, x3
209 //CHECK-NO-V84-NEXT
: ^
210 //CHECK-NO-V84-NEXT
: error
: TLBI RIPAS2E1IS requires tlb-rmi
211 //CHECK-NO-V84-NEXT
: tlbi ripas2e1is
, x3
212 //CHECK-NO-V84-NEXT
: ^
213 //CHECK-NO-V84-NEXT
: error
: TLBI RIPAS2LE1IS requires tlb-rmi
214 //CHECK-NO-V84-NEXT
: tlbi ripas2le1is
, x3
215 //CHECK-NO-V84-NEXT
: ^
216 //CHECK-NO-V84-NEXT
: error
: TLBI RIPAS2E1 requires tlb-rmi
217 //CHECK-NO-V84-NEXT
: tlbi ripas2e1
, X3
218 //CHECK-NO-V84-NEXT
: ^
219 //CHECK-NO-V84-NEXT
: error
: TLBI RIPAS2LE1 requires tlb-rmi
220 //CHECK-NO-V84-NEXT
: tlbi ripas2le1
, X3
221 //CHECK-NO-V84-NEXT
: ^
222 //CHECK-NO-V84-NEXT
: error
: TLBI RIPAS2E1OS requires tlb-rmi
223 //CHECK-NO-V84-NEXT
: tlbi ripas2e1os
, X3
224 //CHECK-NO-V84-NEXT
: ^
225 //CHECK-NO-V84-NEXT
: error
: TLBI RIPAS2LE1OS requires tlb-rmi
226 //CHECK-NO-V84-NEXT
: tlbi ripas2le1os
, X3
227 //CHECK-NO-V84-NEXT
: ^
228 //CHECK-NO-V84-NEXT
: error
: TLBI RVAE2 requires tlb-rmi
229 //CHECK-NO-V84-NEXT
: tlbi rvae2
, X3
230 //CHECK-NO-V84-NEXT
: ^
231 //CHECK-NO-V84-NEXT
: error
: TLBI RVALE2 requires tlb-rmi
232 //CHECK-NO-V84-NEXT
: tlbi rvale2
, X3
233 //CHECK-NO-V84-NEXT
: ^
234 //CHECK-NO-V84-NEXT
: error
: TLBI RVAE2IS requires tlb-rmi
235 //CHECK-NO-V84-NEXT
: tlbi rvae2is
, X3
236 //CHECK-NO-V84-NEXT
: ^
237 //CHECK-NO-V84-NEXT
: error
: TLBI RVALE2IS requires tlb-rmi
238 //CHECK-NO-V84-NEXT
: tlbi rvale2is
, X3
239 //CHECK-NO-V84-NEXT
: ^
240 //CHECK-NO-V84-NEXT
: error
: TLBI RVAE2OS requires tlb-rmi
241 //CHECK-NO-V84-NEXT
: tlbi rvae2os
, X3
242 //CHECK-NO-V84-NEXT
: ^
243 //CHECK-NO-V84-NEXT
: error
: TLBI RVALE2OS requires tlb-rmi
244 //CHECK-NO-V84-NEXT
: tlbi rvale2os
, X3
245 //CHECK-NO-V84-NEXT
: ^
246 //CHECK-NO-V84-NEXT
: error
: TLBI RVAE3 requires tlb-rmi
247 //CHECK-NO-V84-NEXT
: tlbi rvae3
, X3
248 //CHECK-NO-V84-NEXT
: ^
249 //CHECK-NO-V84-NEXT
: error
: TLBI RVALE3 requires tlb-rmi
250 //CHECK-NO-V84-NEXT
: tlbi rvale3
, X3
251 //CHECK-NO-V84-NEXT
: ^
252 //CHECK-NO-V84-NEXT
: error
: TLBI RVAE3IS requires tlb-rmi
253 //CHECK-NO-V84-NEXT
: tlbi rvae3is
, X3
254 //CHECK-NO-V84-NEXT
: ^
255 //CHECK-NO-V84-NEXT
: error
: TLBI RVALE3IS requires tlb-rmi
256 //CHECK-NO-V84-NEXT
: tlbi rvale3is
, X3
257 //CHECK-NO-V84-NEXT
: ^
258 //CHECK-NO-V84-NEXT
: error
: TLBI RVAE3OS requires tlb-rmi
259 //CHECK-NO-V84-NEXT
: tlbi rvae3os
, X3
260 //CHECK-NO-V84-NEXT
: ^
261 //CHECK-NO-V84-NEXT
: error
: TLBI RVALE3OS requires tlb-rmi
262 //CHECK-NO-V84-NEXT
: tlbi rvale3os
, X3
263 //CHECK-NO-V84-NEXT
: ^
264 //CHECK-NO-V84-NEXT
: error
: TLBI RVALE3OS requires tlb-rmi
265 //CHECK-NO-V84-NEXT
: tlbi rvale3os
, XZR
266 //CHECK-NO-V84-NEXT
: ^