1 // RUN
: llvm-mc
-triple aarch64
-show-encoding
-mattr
=+mte
< %s | FileCheck
%s
2 // RUN
: not llvm-mc
-triple aarch64
-show-encoding
-mattr
=+v8.5
a < %s
2>&1 | FileCheck
%s
--check-prefix
=NOMTE
3 // RUN
: not llvm-mc
-triple aarch64
-show-encoding
-mattr
=-mte
< %s
2>&1 | FileCheck
%s
--check-prefix
=NOMTE
11 // CHECK
: irg x0
, x1
// encoding
: [0x20,0x10,0xdf,0x9a]
12 // CHECK
: irg sp
, x1
// encoding
: [0x3f,0x10,0xdf,0x9a]
13 // CHECK
: irg x0
, sp
// encoding
: [0xe0,0x13,0xdf,0x9a]
14 // CHECK
: irg x0
, x1
, x2
// encoding
: [0x20,0x10,0xc2,0x9a]
15 // CHECK
: irg sp
, x1
, x2
// encoding
: [0x3f,0x10,0xc2,0x9a]
17 // NOMTE
: instruction requires
: mte
18 // NOMTE-NEXT
: irg x0
, x1
19 // NOMTE
: instruction requires
: mte
20 // NOMTE-NEXT
: irg sp
, x1
21 // NOMTE
: instruction requires
: mte
22 // NOMTE-NEXT
: irg x0
, sp
23 // NOMTE
: instruction requires
: mte
24 // NOMTE-NEXT
: irg x0
, x1
, x2
25 // NOMTE
: instruction requires
: mte
26 // NOMTE-NEXT
: irg sp
, x1
, x2
31 addg x3
, x4
, #1008, #6
32 addg x5
, x6
, #112, #15
37 subg x3
, x4
, #1008, #6
38 subg x5
, x6
, #112, #15
40 // CHECK
: addg x0
, x1
, #0, #1 // encoding: [0x20,0x04,0x80,0x91]
41 // CHECK
: addg sp
, x2
, #32, #3 // encoding: [0x5f,0x0c,0x82,0x91]
42 // CHECK
: addg x0
, sp
, #64, #5 // encoding: [0xe0,0x17,0x84,0x91]
43 // CHECK
: addg x3
, x4
, #1008, #6 // encoding: [0x83,0x18,0xbf,0x91]
44 // CHECK
: addg x5
, x6
, #112, #15 // encoding: [0xc5,0x3c,0x87,0x91]
46 // CHECK
: subg x0
, x1
, #0, #1 // encoding: [0x20,0x04,0x80,0xd1]
47 // CHECK
: subg sp
, x2
, #32, #3 // encoding: [0x5f,0x0c,0x82,0xd1]
48 // CHECK
: subg x0
, sp
, #64, #5 // encoding: [0xe0,0x17,0x84,0xd1]
49 // CHECK
: subg x3
, x4
, #1008, #6 // encoding: [0x83,0x18,0xbf,0xd1]
50 // CHECK
: subg x5
, x6
, #112, #15 // encoding: [0xc5,0x3c,0x87,0xd1]
52 // NOMTE
: instruction requires
: mte
53 // NOMTE-NEXT
: addg x0
, x1
, #0, #1
54 // NOMTE
: instruction requires
: mte
55 // NOMTE-NEXT
: addg sp
, x2
, #32, #3
56 // NOMTE
: instruction requires
: mte
57 // NOMTE-NEXT
: addg x0
, sp
, #64, #5
58 // NOMTE
: instruction requires
: mte
59 // NOMTE-NEXT
: addg x3
, x4
, #1008, #6
60 // NOMTE
: instruction requires
: mte
61 // NOMTE-NEXT
: addg x5
, x6
, #112, #15
63 // NOMTE
: instruction requires
: mte
64 // NOMTE-NEXT
: subg x0
, x1
, #0, #1
65 // NOMTE
: instruction requires
: mte
66 // NOMTE-NEXT
: subg sp
, x2
, #32, #3
67 // NOMTE
: instruction requires
: mte
68 // NOMTE-NEXT
: subg x0
, sp
, #64, #5
69 // NOMTE
: instruction requires
: mte
70 // NOMTE-NEXT
: subg x3
, x4
, #1008, #6
71 // NOMTE
: instruction requires
: mte
72 // NOMTE-NEXT
: subg x5
, x6
, #112, #15
79 // CHECK
: gmi x0
, x1
, x2
// encoding
: [0x20,0x14,0xc2,0x9a]
80 // CHECK
: gmi x3
, sp
, x4
// encoding
: [0xe3,0x17,0xc4,0x9a]
81 // CHECK
: gmi xzr
, x0
, x30
// encoding
: [0x1f,0x14,0xde,0x9a]
82 // CHECK
: gmi x30
, x0
, xzr
// encoding
: [0x1e,0x14,0xdf,0x9a]
84 // NOMTE
: instruction requires
: mte
85 // NOMTE-NEXT
: gmi x0
, x1
, x2
86 // NOMTE
: instruction requires
: mte
87 // NOMTE-NEXT
: gmi x3
, sp
, x4
88 // NOMTE
: instruction requires
: mte
89 // NOMTE-NEXT
: gmi xzr
, x0
, x30
90 // NOMTE
: instruction requires
: mte
91 // NOMTE-NEXT
: gmi x30
, x0
, xzr
99 // CHECK
: stg x0
, [x1
] // encoding
: [0x20,0x08,0x20,0xd9]
100 // CHECK
: stg x1
, [x1
, #-4096] // encoding: [0x21,0x08,0x30,0xd9]
101 // CHECK
: stg x2
, [x2
, #4080] // encoding: [0x42,0xf8,0x2f,0xd9]
102 // CHECK
: stg x3
, [sp
, #16] // encoding: [0xe3,0x1b,0x20,0xd9]
103 // CHECK
: stg sp
, [sp
, #16] // encoding: [0xff,0x1b,0x20,0xd9]
105 // NOMTE
: instruction requires
: mte
107 // NOMTE
: instruction requires
: mte
109 // NOMTE
: instruction requires
: mte
111 // NOMTE
: instruction requires
: mte
113 // NOMTE
: instruction requires
: mte
117 stzg x1
, [x1
, #-4096]
122 // CHECK
: stzg x0
, [x1
] // encoding
: [0x20,0x08,0x60,0xd9]
123 // CHECK
: stzg x1
, [x1
, #-4096] // encoding: [0x21,0x08,0x70,0xd9]
124 // CHECK
: stzg x2
, [x2
, #4080] // encoding: [0x42,0xf8,0x6f,0xd9]
125 // CHECK
: stzg x3
, [sp
, #16] // encoding: [0xe3,0x1b,0x60,0xd9]
126 // CHECK
: stzg sp
, [sp
, #16] // encoding: [0xff,0x1b,0x60,0xd9]
128 // NOMTE
: instruction requires
: mte
130 // NOMTE
: instruction requires
: mte
132 // NOMTE
: instruction requires
: mte
134 // NOMTE
: instruction requires
: mte
136 // NOMTE
: instruction requires
: mte
139 stg x0
, [x1
, #-4096]!
144 // CHECK
: stg x0
, [x1
, #-4096]! // encoding: [0x20,0x0c,0x30,0xd9]
145 // CHECK
: stg x1
, [x2
, #4080]! // encoding: [0x41,0xfc,0x2f,0xd9]
146 // CHECK
: stg x2
, [sp
, #16]! // encoding: [0xe2,0x1f,0x20,0xd9]
147 // CHECK
: stg sp
, [sp
, #16]! // encoding: [0xff,0x1f,0x20,0xd9]
149 // NOMTE
: instruction requires
: mte
151 // NOMTE
: instruction requires
: mte
153 // NOMTE
: instruction requires
: mte
155 // NOMTE
: instruction requires
: mte
158 stzg x0
, [x1
, #-4096]!
159 stzg x1
, [x2
, #4080]!
163 // CHECK
: stzg x0
, [x1
, #-4096]! // encoding: [0x20,0x0c,0x70,0xd9]
164 // CHECK
: stzg x1
, [x2
, #4080]! // encoding: [0x41,0xfc,0x6f,0xd9]
165 // CHECK
: stzg x2
, [sp
, #16]! // encoding: [0xe2,0x1f,0x60,0xd9]
166 // CHECK
: stzg sp
, [sp
, #16]! // encoding: [0xff,0x1f,0x60,0xd9]
168 // NOMTE
: instruction requires
: mte
170 // NOMTE
: instruction requires
: mte
172 // NOMTE
: instruction requires
: mte
174 // NOMTE
: instruction requires
: mte
182 // CHECK
: stg x0
, [x1
], #-4096 // encoding: [0x20,0x04,0x30,0xd9]
183 // CHECK
: stg x1
, [x2
], #4080 // encoding: [0x41,0xf4,0x2f,0xd9]
184 // CHECK
: stg x2
, [sp
], #16 // encoding: [0xe2,0x17,0x20,0xd9]
185 // CHECK
: stg sp
, [sp
], #16 // encoding: [0xff,0x17,0x20,0xd9]
187 // NOMTE
: instruction requires
: mte
189 // NOMTE
: instruction requires
: mte
191 // NOMTE
: instruction requires
: mte
193 // NOMTE
: instruction requires
: mte
196 stzg x0
, [x1
], #-4096
201 // CHECK
: stzg x0
, [x1
], #-4096 // encoding: [0x20,0x04,0x70,0xd9]
202 // CHECK
: stzg x1
, [x2
], #4080 // encoding: [0x41,0xf4,0x6f,0xd9]
203 // CHECK
: stzg x2
, [sp
], #16 // encoding: [0xe2,0x17,0x60,0xd9]
204 // CHECK
: stzg sp
, [sp
], #16 // encoding: [0xff,0x17,0x60,0xd9]
206 // NOMTE
: instruction requires
: mte
208 // NOMTE
: instruction requires
: mte
210 // NOMTE
: instruction requires
: mte
212 // NOMTE
: instruction requires
: mte
216 st2g x1
, [x1
, #-4096]
221 // CHECK
: st2g x0
, [x1
] // encoding
: [0x20,0x08,0xa0,0xd9]
222 // CHECK
: st2g x1
, [x1
, #-4096] // encoding: [0x21,0x08,0xb0,0xd9]
223 // CHECK
: st2g x2
, [x2
, #4080] // encoding: [0x42,0xf8,0xaf,0xd9]
224 // CHECK
: st2g x3
, [sp
, #16] // encoding: [0xe3,0x1b,0xa0,0xd9]
225 // CHECK
: st2g sp
, [sp
, #16] // encoding: [0xff,0x1b,0xa0,0xd9]
227 // NOMTE
: instruction requires
: mte
229 // NOMTE
: instruction requires
: mte
231 // NOMTE
: instruction requires
: mte
233 // NOMTE
: instruction requires
: mte
235 // NOMTE
: instruction requires
: mte
239 stz2g x1
, [x1
, #-4096]
240 stz2g x2
, [x2
, #4080]
244 // CHECK
: stz2g x0
, [x1
] // encoding
: [0x20,0x08,0xe0,0xd9]
245 // CHECK
: stz2g x1
, [x1
, #-4096] // encoding: [0x21,0x08,0xf0,0xd9]
246 // CHECK
: stz2g x2
, [x2
, #4080] // encoding: [0x42,0xf8,0xef,0xd9]
247 // CHECK
: stz2g x3
, [sp
, #16] // encoding: [0xe3,0x1b,0xe0,0xd9]
248 // CHECK
: stz2g sp
, [sp
, #16] // encoding: [0xff,0x1b,0xe0,0xd9]
250 // NOMTE
: instruction requires
: mte
252 // NOMTE
: instruction requires
: mte
254 // NOMTE
: instruction requires
: mte
256 // NOMTE
: instruction requires
: mte
258 // NOMTE
: instruction requires
: mte
261 st2g x0
, [x1
, #-4096]!
262 st2g x1
, [x2
, #4080]!
266 // CHECK
: st2g x0
, [x1
, #-4096]! // encoding: [0x20,0x0c,0xb0,0xd9]
267 // CHECK
: st2g x1
, [x2
, #4080]! // encoding: [0x41,0xfc,0xaf,0xd9]
268 // CHECK
: st2g x2
, [sp
, #16]! // encoding: [0xe2,0x1f,0xa0,0xd9]
269 // CHECK
: st2g sp
, [sp
, #16]! // encoding: [0xff,0x1f,0xa0,0xd9]
271 // NOMTE
: instruction requires
: mte
273 // NOMTE
: instruction requires
: mte
275 // NOMTE
: instruction requires
: mte
277 // NOMTE
: instruction requires
: mte
280 stz2g x0
, [x1
, #-4096]!
281 stz2g x1
, [x2
, #4080]!
285 // CHECK
: stz2g x0
, [x1
, #-4096]! // encoding: [0x20,0x0c,0xf0,0xd9]
286 // CHECK
: stz2g x1
, [x2
, #4080]! // encoding: [0x41,0xfc,0xef,0xd9]
287 // CHECK
: stz2g x2
, [sp
, #16]! // encoding: [0xe2,0x1f,0xe0,0xd9]
288 // CHECK
: stz2g sp
, [sp
, #16]! // encoding: [0xff,0x1f,0xe0,0xd9]
290 // NOMTE
: instruction requires
: mte
292 // NOMTE
: instruction requires
: mte
294 // NOMTE
: instruction requires
: mte
296 // NOMTE
: instruction requires
: mte
299 st2g x0
, [x1
], #-4096
304 // CHECK
: st2g x0
, [x1
], #-4096 // encoding: [0x20,0x04,0xb0,0xd9]
305 // CHECK
: st2g x1
, [x2
], #4080 // encoding: [0x41,0xf4,0xaf,0xd9]
306 // CHECK
: st2g x2
, [sp
], #16 // encoding: [0xe2,0x17,0xa0,0xd9]
307 // CHECK
: st2g sp
, [sp
], #16 // encoding: [0xff,0x17,0xa0,0xd9]
309 // NOMTE
: instruction requires
: mte
311 // NOMTE
: instruction requires
: mte
313 // NOMTE
: instruction requires
: mte
315 // NOMTE
: instruction requires
: mte
318 stz2g x0
, [x1
], #-4096
319 stz2g x1
, [x2
], #4080
323 // CHECK
: stz2g x0
, [x1
], #-4096 // encoding: [0x20,0x04,0xf0,0xd9]
324 // CHECK
: stz2g x1
, [x2
], #4080 // encoding: [0x41,0xf4,0xef,0xd9]
325 // CHECK
: stz2g x2
, [sp
], #16 // encoding: [0xe2,0x17,0xe0,0xd9]
326 // CHECK
: stz2g sp
, [sp
], #16 // encoding: [0xff,0x17,0xe0,0xd9]
328 // NOMTE
: instruction requires
: mte
330 // NOMTE
: instruction requires
: mte
332 // NOMTE
: instruction requires
: mte
334 // NOMTE
: instruction requires
: mte
338 stgp x0
, x1
, [x2
, #-1024]
339 stgp x0
, x1
, [x2
, #1008]
340 stgp x0
, x1
, [sp
, #16]
341 stgp xzr
, x1
, [x2
, #16]
342 stgp x0
, xzr
, [x2
, #16]
344 // CHECK
: stgp x0
, x1
, [x2
] // encoding
: [0x40,0x04,0x00,0x69]
345 // CHECK
: stgp x0
, x1
, [x2
, #-1024] // encoding: [0x40,0x04,0x20,0x69]
346 // CHECK
: stgp x0
, x1
, [x2
, #1008] // encoding: [0x40,0x84,0x1f,0x69]
347 // CHECK
: stgp x0
, x1
, [sp
, #16] // encoding: [0xe0,0x87,0x00,0x69]
348 // CHECK
: stgp xzr
, x1
, [x2
, #16] // encoding: [0x5f,0x84,0x00,0x69]
349 // CHECK
: stgp x0
, xzr
, [x2
, #16] // encoding: [0x40,0xfc,0x00,0x69]
351 // NOMTE
: instruction requires
: mte
353 // NOMTE
: instruction requires
: mte
355 // NOMTE
: instruction requires
: mte
357 // NOMTE
: instruction requires
: mte
360 stgp x0
, x1
, [x2
, #-1024]!
361 stgp x0
, x1
, [x2
, #1008]!
362 stgp x0
, x1
, [sp
, #16]!
363 stgp xzr
, x1
, [x2
, #16]!
364 stgp x0
, xzr
, [x2
, #16]!
366 // CHECK
: stgp x0
, x1
, [x2
, #-1024]! // encoding: [0x40,0x04,0xa0,0x69]
367 // CHECK
: stgp x0
, x1
, [x2
, #1008]! // encoding: [0x40,0x84,0x9f,0x69]
368 // CHECK
: stgp x0
, x1
, [sp
, #16]! // encoding: [0xe0,0x87,0x80,0x69]
369 // CHECK
: stgp xzr
, x1
, [x2
, #16]! // encoding: [0x5f,0x84,0x80,0x69]
370 // CHECK
: stgp x0
, xzr
, [x2
, #16]! // encoding: [0x40,0xfc,0x80,0x69]
372 // NOMTE
: instruction requires
: mte
374 // NOMTE
: instruction requires
: mte
376 // NOMTE
: instruction requires
: mte
378 // NOMTE
: instruction requires
: mte
380 // NOMTE
: instruction requires
: mte
383 stgp x0
, x1
, [x2
], #-1024
384 stgp x0
, x1
, [x2
], #1008
385 stgp x0
, x1
, [sp
], #16
386 stgp xzr
, x1
, [x2
], #16
387 stgp x0
, xzr
, [x2
], #16
389 // CHECK
: stgp x0
, x1
, [x2
], #-1024 // encoding: [0x40,0x04,0xa0,0x68]
390 // CHECK
: stgp x0
, x1
, [x2
], #1008 // encoding: [0x40,0x84,0x9f,0x68]
391 // CHECK
: stgp x0
, x1
, [sp
], #16 // encoding: [0xe0,0x87,0x80,0x68]
392 // CHECK
: stgp xzr
, x1
, [x2
], #16 // encoding: [0x5f,0x84,0x80,0x68]
393 // CHECK
: stgp x0
, xzr
, [x2
], #16 // encoding: [0x40,0xfc,0x80,0x68]
395 // NOMTE
: instruction requires
: mte
397 // NOMTE
: instruction requires
: mte
399 // NOMTE
: instruction requires
: mte
401 // NOMTE
: instruction requires
: mte
403 // NOMTE
: instruction requires
: mte
425 // CHECK
: dc igvac
, x0
// encoding
: [0x60,0x76,0x08,0xd5]
426 // CHECK
: dc igsw
, x1
// encoding
: [0x81,0x76,0x08,0xd5]
427 // CHECK
: dc cgsw
, x2
// encoding
: [0x82,0x7a,0x08,0xd5]
428 // CHECK
: dc cigsw
, x3
// encoding
: [0x83,0x7e,0x08,0xd5]
429 // CHECK
: dc cgvac
, x4
// encoding
: [0x64,0x7a,0x0b,0xd5]
430 // CHECK
: dc cgvap
, x5
// encoding
: [0x65,0x7c,0x0b,0xd5]
431 // CHECK
: dc cgvadp
, x6
// encoding
: [0x66,0x7d,0x0b,0xd5]
432 // CHECK
: dc cigvac
, x7
// encoding
: [0x67,0x7e,0x0b,0xd5]
433 // CHECK
: dc gva
, x8
// encoding
: [0x68,0x74,0x0b,0xd5]
434 // CHECK
: dc igdvac
, x9
// encoding
: [0xa9,0x76,0x08,0xd5]
435 // CHECK
: dc igdsw
, x10
// encoding
: [0xca,0x76,0x08,0xd5]
436 // CHECK
: dc cgdsw
, x11
// encoding
: [0xcb,0x7a,0x08,0xd5]
437 // CHECK
: dc cigdsw
, x12
// encoding
: [0xcc,0x7e,0x08,0xd5]
438 // CHECK
: dc cgdvac
, x13
// encoding
: [0xad,0x7a,0x0b,0xd5]
439 // CHECK
: dc cgdvap
, x14
// encoding
: [0xae,0x7c,0x0b,0xd5]
440 // CHECK
: dc cgdvadp
, x15
// encoding
: [0xaf,0x7d,0x0b,0xd5]
441 // CHECK
: dc cigdvac
, x16
// encoding
: [0xb0,0x7e,0x0b,0xd5]
442 // CHECK
: dc gzva
, x17
// encoding
: [0x91,0x74,0x0b,0xd5]
444 // NOMTE
: DC IGVAC requires mte
445 // NOMTE
: DC IGSW requires mte
446 // NOMTE
: DC CGSW requires mte
447 // NOMTE
: DC CIGSW requires mte
448 // NOMTE
: DC CGVAC requires mte
449 // NOMTE
: DC CGVAP requires mte
450 // NOMTE
: DC CGVADP requires mte
451 // NOMTE
: DC CIGVAC requires mte
452 // NOMTE
: DC GVA requires mte
453 // NOMTE
: DC IGDVAC requires mte
454 // NOMTE
: DC IGDSW requires mte
455 // NOMTE
: DC CGDSW requires mte
456 // NOMTE
: DC CIGDSW requires mte
457 // NOMTE
: DC CGDVAC requires mte
458 // NOMTE
: DC CGDVAP requires mte
459 // NOMTE
: DC CGDVADP requires mte
460 // NOMTE
: DC CIGDVAC requires mte
461 // NOMTE
: DC GZVA requires mte
473 // CHECK
: mrs x0
, TCO
// encoding
: [0xe0,0x42,0x3b,0xd5]
474 // CHECK
: mrs x1
, GCR_EL1
// encoding
: [0xc1,0x10,0x38,0xd5]
475 // CHECK
: mrs x2
, RGSR_EL1
// encoding
: [0xa2,0x10,0x38,0xd5]
476 // CHECK
: mrs x3
, TFSR_EL1
// encoding
: [0x03,0x56,0x38,0xd5]
477 // CHECK
: mrs x4
, TFSR_EL2
// encoding
: [0x04,0x56,0x3c,0xd5]
478 // CHECK
: mrs x5
, TFSR_EL3
// encoding
: [0x05,0x56,0x3e,0xd5]
479 // CHECK
: mrs x6
, TFSR_EL12
// encoding
: [0x06,0x56,0x3d,0xd5]
480 // CHECK
: mrs x7
, TFSRE0_EL1
// encoding
: [0x27,0x56,0x38,0xd5]
481 // CHECK
: mrs x7
, GMID_EL1
// encoding
: [0x87,0x00,0x39,0xd5]
483 // NOMTE
: expected readable system register
485 // NOMTE
: expected readable system register
486 // NOMTE-NEXT
: gcr_el1
487 // NOMTE
: expected readable system register
488 // NOMTE-NEXT
: rgsr_el1
489 // NOMTE
: expected readable system register
490 // NOMTE-NEXT
: tfsr_el1
491 // NOMTE
: expected readable system register
492 // NOMTE-NEXT
: tfsr_el2
493 // NOMTE
: expected readable system register
494 // NOMTE-NEXT
: tfsr_el3
495 // NOMTE
: expected readable system register
496 // NOMTE-NEXT
: tfsr_el12
497 // NOMTE
: expected readable system register
498 // NOMTE-NEXT
: tfsre0_el1
499 // NOMTE
: expected readable system register
500 // NOMTE-NEXT
: gmid_el1
504 // CHECK
: msr TCO
, #0 // encoding: [0x9f,0x40,0x03,0xd5]
506 // NOMTE
: expected writable system register
or pstate
518 // CHECK
: msr TCO
, x0
// encoding
: [0xe0,0x42,0x1b,0xd5]
519 // CHECK
: msr GCR_EL1
, x1
// encoding
: [0xc1,0x10,0x18,0xd5]
520 // CHECK
: msr RGSR_EL1
, x2
// encoding
: [0xa2,0x10,0x18,0xd5]
521 // CHECK
: msr TFSR_EL1
, x3
// encoding
: [0x03,0x56,0x18,0xd5]
522 // CHECK
: msr TFSR_EL2
, x4
// encoding
: [0x04,0x56,0x1c,0xd5]
523 // CHECK
: msr TFSR_EL3
, x5
// encoding
: [0x05,0x56,0x1e,0xd5]
524 // CHECK
: msr TFSR_EL12
, x6
// encoding
: [0x06,0x56,0x1d,0xd5]
525 // CHECK
: msr TFSRE0_EL1
, x7
// encoding
: [0x27,0x56,0x18,0xd5]
527 // NOMTE
: expected writable system register
or pstate
529 // NOMTE
: expected writable system register
or pstate
530 // NOMTE-NEXT
: gcr_el1
531 // NOMTE
: expected writable system register
or pstate
532 // NOMTE-NEXT
: rgsr_el1
533 // NOMTE
: expected writable system register
or pstate
534 // NOMTE-NEXT
: tfsr_el1
535 // NOMTE
: expected writable system register
or pstate
536 // NOMTE-NEXT
: tfsr_el2
537 // NOMTE
: expected writable system register
or pstate
538 // NOMTE-NEXT
: tfsr_el3
539 // NOMTE
: expected writable system register
or pstate
540 // NOMTE-NEXT
: tfsr_el12
541 // NOMTE
: expected writable system register
or pstate
542 // NOMTE-NEXT
: tfsre0_el1
549 // CHECK
: subp x0
, x1
, x2
// encoding
: [0x20,0x00,0xc2,0x9a]
550 // CHECK
: subp x0
, sp
, sp
// encoding
: [0xe0,0x03,0xdf,0x9a]
551 // CHECK
: subps x0
, x1
, x2
// encoding
: [0x20,0x00,0xc2,0xba]
552 // CHECK
: subps x0
, sp
, sp
// encoding
: [0xe0,0x03,0xdf,0xba]
554 // NOMTE
: instruction requires
: mte
555 // NOMTE
: instruction requires
: mte
556 // NOMTE
: instruction requires
: mte
563 // CHECK
: subps xzr
, x0
, x1
// encoding
: [0x1f,0x00,0xc1,0xba]
564 // CHECK
: subps xzr
, x0
, x1
// encoding
: [0x1f,0x00,0xc1,0xba]
565 // CHECK
: subps xzr
, sp
, sp
// encoding
: [0xff,0x03,0xdf,0xba]
566 // CHECK
: subps xzr
, sp
, sp
// encoding
: [0xff,0x03,0xdf,0xba]
568 // NOMTE
: instruction requires
: mte
569 // NOMTE
: instruction requires
: mte
570 // NOMTE
: instruction requires
: mte
571 // NOMTE
: instruction requires
: mte
577 // CHECK
: ldg x0
, [x1
] // encoding
: [0x20,0x00,0x60,0xd9]
578 // CHECK
: ldg x2
, [sp
, #-4096] // encoding: [0xe2,0x03,0x70,0xd9]
579 // CHECK
: ldg x3
, [x4
, #4080] // encoding: [0x83,0xf0,0x6f,0xd9]
581 // NOMTE
: instruction requires
: mte
582 // NOMTE
: instruction requires
: mte
583 // NOMTE
: instruction requires
: mte
589 // CHECK
: ldgm x0
, [x1
] // encoding
: [0x20,0x00,0xe0,0xd9]
590 // CHECK
: ldgm x1
, [sp
] // encoding
: [0xe1,0x03,0xe0,0xd9]
591 // CHECK
: ldgm xzr
, [x2
] // encoding
: [0x5f,0x00,0xe0,0xd9]
593 // NOMTE
: instruction requires
: mte
594 // NOMTE
: instruction requires
: mte
595 // NOMTE
: instruction requires
: mte
601 // CHECK
: stgm x0
, [x1
] // encoding
: [0x20,0x00,0xa0,0xd9]
602 // CHECK
: stgm x1
, [sp
] // encoding
: [0xe1,0x03,0xa0,0xd9]
603 // CHECK
: stgm xzr
, [x2
] // encoding
: [0x5f,0x00,0xa0,0xd9]
605 // NOMTE
: instruction requires
: mte
606 // NOMTE
: instruction requires
: mte
607 // NOMTE
: instruction requires
: mte
613 // CHECK
: stzgm x0
, [x1
] // encoding
: [0x20,0x00,0x20,0xd9]
614 // CHECK
: stzgm x1
, [sp
] // encoding
: [0xe1,0x03,0x20,0xd9]
615 // CHECK
: stzgm xzr
, [x2
] // encoding
: [0x5f,0x00,0x20,0xd9]
617 // NOMTE
: instruction requires
: mte
618 // NOMTE
: instruction requires
: mte
619 // NOMTE
: instruction requires
: mte