Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / MC / AArch64 / armv8.3a-signed-pointer.s
blobe95c9309a3d4d22910cff675938788b6d80372d4
1 // RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.3a -o - %s 2>&1 | \
2 // RUN: FileCheck --check-prefixes=CHECK,ALL %s
4 // RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding %s -o - > %t.1 2>%t.2
5 // RUN: FileCheck --check-prefixes=NO83,ALL %s < %t.1
6 // RUN: FileCheck --check-prefix=CHECK-REQ %s < %t.2
8 // ALL: .text
9 mrs x0, apiakeylo_el1
10 mrs x0, apiakeyhi_el1
11 mrs x0, apibkeylo_el1
12 mrs x0, apibkeyhi_el1
13 mrs x0, apdakeylo_el1
14 mrs x0, apdakeyhi_el1
15 mrs x0, apdbkeylo_el1
16 mrs x0, apdbkeyhi_el1
17 mrs x0, apgakeylo_el1
18 mrs x0, apgakeyhi_el1
19 // ALL-EMPTY:
20 // ALL-EMPTY:
21 // CHECK-NEXT: mrs x0, APIAKeyLo_EL1 // encoding: [0x00,0x21,0x38,0xd5]
22 // CHECK-NEXT: mrs x0, APIAKeyHi_EL1 // encoding: [0x20,0x21,0x38,0xd5]
23 // CHECK-NEXT: mrs x0, APIBKeyLo_EL1 // encoding: [0x40,0x21,0x38,0xd5]
24 // CHECK-NEXT: mrs x0, APIBKeyHi_EL1 // encoding: [0x60,0x21,0x38,0xd5]
25 // CHECK-NEXT: mrs x0, APDAKeyLo_EL1 // encoding: [0x00,0x22,0x38,0xd5]
26 // CHECK-NEXT: mrs x0, APDAKeyHi_EL1 // encoding: [0x20,0x22,0x38,0xd5]
27 // CHECK-NEXT: mrs x0, APDBKeyLo_EL1 // encoding: [0x40,0x22,0x38,0xd5]
28 // CHECK-NEXT: mrs x0, APDBKeyHi_EL1 // encoding: [0x60,0x22,0x38,0xd5]
29 // CHECK-NEXT: mrs x0, APGAKeyLo_EL1 // encoding: [0x00,0x23,0x38,0xd5]
30 // CHECK-NEXT: mrs x0, APGAKeyHi_EL1 // encoding: [0x20,0x23,0x38,0xd5]
32 // CHECK-REQ: error: expected readable system register
33 // CHECK-REQ-NEXT: mrs x0, apiakeylo_el1
34 // CHECK-REQ: error: expected readable system register
35 // CHECK-REQ-NEXT: mrs x0, apiakeyhi_el1
36 // CHECK-REQ: error: expected readable system register
37 // CHECK-REQ-NEXT: mrs x0, apibkeylo_el1
38 // CHECK-REQ: error: expected readable system register
39 // CHECK-REQ-NEXT: mrs x0, apibkeyhi_el1
40 // CHECK-REQ: error: expected readable system register
41 // CHECK-REQ-NEXT: mrs x0, apdakeylo_el1
42 // CHECK-REQ: error: expected readable system register
43 // CHECK-REQ-NEXT: mrs x0, apdakeyhi_el1
44 // CHECK-REQ: error: expected readable system register
45 // CHECK-REQ-NEXT: mrs x0, apdbkeylo_el1
46 // CHECK-REQ: error: expected readable system register
47 // CHECK-REQ-NEXT: mrs x0, apdbkeyhi_el1
48 // CHECK-REQ: error: expected readable system register
49 // CHECK-REQ-NEXT: mrs x0, apgakeylo_el1
50 // CHECK-REQ: error: expected readable system register
51 // CHECK-REQ-NEXT: mrs x0, apgakeyhi_el1
53 msr apiakeylo_el1, x0
54 msr apiakeyhi_el1, x0
55 msr apibkeylo_el1, x0
56 msr apibkeyhi_el1, x0
57 msr apdakeylo_el1, x0
58 msr apdakeyhi_el1, x0
59 msr apdbkeylo_el1, x0
60 msr apdbkeyhi_el1, x0
61 msr apgakeylo_el1, x0
62 msr apgakeyhi_el1, x0
63 // ALL-EMPTY:
64 // ALL-EMPTY:
65 // CHECK-NEXT: msr APIAKeyLo_EL1, x0 // encoding: [0x00,0x21,0x18,0xd5]
66 // CHECK-NEXT: msr APIAKeyHi_EL1, x0 // encoding: [0x20,0x21,0x18,0xd5]
67 // CHECK-NEXT: msr APIBKeyLo_EL1, x0 // encoding: [0x40,0x21,0x18,0xd5]
68 // CHECK-NEXT: msr APIBKeyHi_EL1, x0 // encoding: [0x60,0x21,0x18,0xd5]
69 // CHECK-NEXT: msr APDAKeyLo_EL1, x0 // encoding: [0x00,0x22,0x18,0xd5]
70 // CHECK-NEXT: msr APDAKeyHi_EL1, x0 // encoding: [0x20,0x22,0x18,0xd5]
71 // CHECK-NEXT: msr APDBKeyLo_EL1, x0 // encoding: [0x40,0x22,0x18,0xd5]
72 // CHECK-NEXT: msr APDBKeyHi_EL1, x0 // encoding: [0x60,0x22,0x18,0xd5]
73 // CHECK-NEXT: msr APGAKeyLo_EL1, x0 // encoding: [0x00,0x23,0x18,0xd5]
74 // CHECK-NEXT: msr APGAKeyHi_EL1, x0 // encoding: [0x20,0x23,0x18,0xd5]
76 // CHECK-REQ: error: expected writable system register or pstate
77 // CHECK-REQ-NEXT: msr apiakeylo_el1, x0
78 // CHECK-REQ: error: expected writable system register or pstate
79 // CHECK-REQ-NEXT: msr apiakeyhi_el1, x0
80 // CHECK-REQ: error: expected writable system register or pstate
81 // CHECK-REQ-NEXT: msr apibkeylo_el1, x0
82 // CHECK-REQ: error: expected writable system register or pstate
83 // CHECK-REQ-NEXT: msr apibkeyhi_el1, x0
84 // CHECK-REQ: error: expected writable system register or pstate
85 // CHECK-REQ-NEXT: msr apdakeylo_el1, x0
86 // CHECK-REQ: error: expected writable system register or pstate
87 // CHECK-REQ-NEXT: msr apdakeyhi_el1, x0
88 // CHECK-REQ: error: expected writable system register or pstate
89 // CHECK-REQ-NEXT: msr apdbkeylo_el1, x0
90 // CHECK-REQ: error: expected writable system register or pstate
91 // CHECK-REQ-NEXT: msr apdbkeyhi_el1, x0
92 // CHECK-REQ: error: expected writable system register or pstate
93 // CHECK-REQ-NEXT: msr apgakeylo_el1, x0
94 // CHECK-REQ: error: expected writable system register or pstate
95 // CHECK-REQ-NEXT: msr apgakeyhi_el1, x0
97 // ALL-EMPTY:
98 // ALL-EMPTY:
99 hint #7
100 xpaclri
101 // CHECK-NEXT: xpaclri // encoding: [0xff,0x20,0x03,0xd5]
102 // CHECK-NEXT: xpaclri // encoding: [0xff,0x20,0x03,0xd5]
103 // NO83-NEXT: hint #7 // encoding: [0xff,0x20,0x03,0xd5]
104 // NO83-NEXT: hint #7 // encoding: [0xff,0x20,0x03,0xd5]
105 hint #8
106 pacia1716
107 // CHECK-NEXT: pacia1716 // encoding: [0x1f,0x21,0x03,0xd5]
108 // CHECK-NEXT: pacia1716 // encoding: [0x1f,0x21,0x03,0xd5]
109 // NO83-NEXT: hint #8 // encoding: [0x1f,0x21,0x03,0xd5]
110 // NO83-NEXT: hint #8 // encoding: [0x1f,0x21,0x03,0xd5]
111 hint #10
112 pacib1716
113 // CHECK-NEXT: pacib1716 // encoding: [0x5f,0x21,0x03,0xd5]
114 // CHECK-NEXT: pacib1716 // encoding: [0x5f,0x21,0x03,0xd5]
115 // NO83-NEXT: hint #10 // encoding: [0x5f,0x21,0x03,0xd5]
116 // NO83-NEXT: hint #10 // encoding: [0x5f,0x21,0x03,0xd5]
117 hint #12
118 autia1716
119 // CHECK-NEXT: autia1716 // encoding: [0x9f,0x21,0x03,0xd5]
120 // CHECK-NEXT: autia1716 // encoding: [0x9f,0x21,0x03,0xd5]
121 // NO83-NEXT: hint #12 // encoding: [0x9f,0x21,0x03,0xd5]
122 // NO83-NEXT: hint #12 // encoding: [0x9f,0x21,0x03,0xd5]
123 hint #14
124 autib1716
125 // CHECK-NEXT: autib1716 // encoding: [0xdf,0x21,0x03,0xd5]
126 // CHECK-NEXT: autib1716 // encoding: [0xdf,0x21,0x03,0xd5]
127 // NO83-NEXT: hint #14 // encoding: [0xdf,0x21,0x03,0xd5]
128 // NO83-NEXT: hint #14 // encoding: [0xdf,0x21,0x03,0xd5]
129 hint #24
130 paciaz
131 // CHECK-NEXT: paciaz // encoding: [0x1f,0x23,0x03,0xd5]
132 // CHECK-NEXT: paciaz // encoding: [0x1f,0x23,0x03,0xd5]
133 // NO83-NEXT: hint #24 // encoding: [0x1f,0x23,0x03,0xd5]
134 // NO83-NEXT: hint #24 // encoding: [0x1f,0x23,0x03,0xd5]
135 hint #25
136 paciasp
137 // CHECK-NEXT: paciasp // encoding: [0x3f,0x23,0x03,0xd5]
138 // CHECK-NEXT: paciasp // encoding: [0x3f,0x23,0x03,0xd5]
139 // NO83-NEXT: hint #25 // encoding: [0x3f,0x23,0x03,0xd5]
140 // NO83-NEXT: hint #25 // encoding: [0x3f,0x23,0x03,0xd5]
141 hint #26
142 pacibz
143 // CHECK-NEXT: pacibz // encoding: [0x5f,0x23,0x03,0xd5]
144 // CHECK-NEXT: pacibz // encoding: [0x5f,0x23,0x03,0xd5]
145 // NO83-NEXT: hint #26 // encoding: [0x5f,0x23,0x03,0xd5]
146 // NO83-NEXT: hint #26 // encoding: [0x5f,0x23,0x03,0xd5]
147 hint #27
148 pacibsp
149 // CHECK-NEXT: pacibsp // encoding: [0x7f,0x23,0x03,0xd5]
150 // CHECK-NEXT: pacibsp // encoding: [0x7f,0x23,0x03,0xd5]
151 // NO83-NEXT: hint #27 // encoding: [0x7f,0x23,0x03,0xd5]
152 // NO83-NEXT: hint #27 // encoding: [0x7f,0x23,0x03,0xd5]
153 hint #28
154 autiaz
155 // CHECK-NEXT: autiaz // encoding: [0x9f,0x23,0x03,0xd5]
156 // CHECK-NEXT: autiaz // encoding: [0x9f,0x23,0x03,0xd5]
157 // NO83-NEXT: hint #28 // encoding: [0x9f,0x23,0x03,0xd5]
158 // NO83-NEXT: hint #28 // encoding: [0x9f,0x23,0x03,0xd5]
159 hint #29
160 autiasp
161 // CHECK-NEXT: autiasp // encoding: [0xbf,0x23,0x03,0xd5]
162 // CHECK-NEXT: autiasp // encoding: [0xbf,0x23,0x03,0xd5]
163 // NO83-NEXT: hint #29 // encoding: [0xbf,0x23,0x03,0xd5]
164 // NO83-NEXT: hint #29 // encoding: [0xbf,0x23,0x03,0xd5]
165 hint #30
166 autibz
167 // CHECK-NEXT: autibz // encoding: [0xdf,0x23,0x03,0xd5]
168 // CHECK-NEXT: autibz // encoding: [0xdf,0x23,0x03,0xd5]
169 // NO83-NEXT: hint #30 // encoding: [0xdf,0x23,0x03,0xd5]
170 // NO83-NEXT: hint #30 // encoding: [0xdf,0x23,0x03,0xd5]
171 hint #31
172 autibsp
173 // CHECK-NEXT: autibsp // encoding: [0xff,0x23,0x03,0xd5]
174 // CHECK-NEXT: autibsp // encoding: [0xff,0x23,0x03,0xd5]
175 // NO83-NEXT: hint #31 // encoding: [0xff,0x23,0x03,0xd5]
176 // NO83-NEXT: hint #31 // encoding: [0xff,0x23,0x03,0xd5]
178 // ALL-EMPTY:
179 pacia x0, x1
180 // CHECK-NEXT: pacia x0, x1 // encoding: [0x20,0x00,0xc1,0xda]
181 // CHECK-REQ-NEXT: ^
182 // CHECK-REQ-NEXT: error: instruction requires: pa
183 // CHECK-REQ-NEXT: pacia x0, x1
184 autia x0, x1
185 // CHECK-NEXT: autia x0, x1 // encoding: [0x20,0x10,0xc1,0xda]
186 // CHECK-REQ: error: instruction requires: pa
187 // CHECK-REQ-NEXT: autia x0, x1
188 pacda x0, x1
189 // CHECK-NEXT: pacda x0, x1 // encoding: [0x20,0x08,0xc1,0xda]
190 // CHECK-REQ: error: instruction requires: pa
191 // CHECK-REQ-NEXT: pacda x0, x1
192 autda x0, x1
193 // CHECK-NEXT: autda x0, x1 // encoding: [0x20,0x18,0xc1,0xda]
194 // CHECK-REQ: error: instruction requires: pa
195 // CHECK-REQ-NEXT: autda x0, x1
196 pacib x0, x1
197 // CHECK-NEXT: pacib x0, x1 // encoding: [0x20,0x04,0xc1,0xda]
198 // CHECK-REQ: error: instruction requires: pa
199 // CHECK-REQ-NEXT: pacib x0, x1
200 autib x0, x1
201 // CHECK-NEXT: autib x0, x1 // encoding: [0x20,0x14,0xc1,0xda]
202 // CHECK-REQ: error: instruction requires: pa
203 // CHECK-REQ-NEXT: autib x0, x1
204 pacdb x0, x1
205 // CHECK-NEXT: pacdb x0, x1 // encoding: [0x20,0x0c,0xc1,0xda]
206 // CHECK-REQ: error: instruction requires: pa
207 // CHECK-REQ-NEXT: pacdb x0, x1
208 autdb x0, x1
209 // CHECK-NEXT: autdb x0, x1 // encoding: [0x20,0x1c,0xc1,0xda]
210 // CHECK-REQ: error: instruction requires: pa
211 // CHECK-REQ-NEXT: autdb x0, x1
212 pacga x0, x1, x2
213 // CHECK-NEXT: pacga x0, x1, x2 // encoding: [0x20,0x30,0xc2,0x9a]
214 // CHECK-REQ: error: instruction requires: pa
215 // CHECK-REQ-NEXT: pacga x0, x1, x2
216 paciza x0
217 // CHECK-NEXT: paciza x0 // encoding: [0xe0,0x23,0xc1,0xda]
218 // CHECK-REQ: error: instruction requires: pa
219 // CHECK-REQ-NEXT: paciza x0
220 autiza x0
221 // CHECK-NEXT: autiza x0 // encoding: [0xe0,0x33,0xc1,0xda]
222 // CHECK-REQ: error: instruction requires: pa
223 // CHECK-REQ-NEXT: autiza x0
224 pacdza x0
225 // CHECK-NEXT: pacdza x0 // encoding: [0xe0,0x2b,0xc1,0xda]
226 // CHECK-REQ: error: instruction requires: pa
227 // CHECK-REQ-NEXT: pacdza x0
228 autdza x0
229 // CHECK-NEXT: autdza x0 // encoding: [0xe0,0x3b,0xc1,0xda]
230 // CHECK-REQ: error: instruction requires: pa
231 // CHECK-REQ-NEXT: autdza x0
232 pacizb x0
233 // CHECK-NEXT: pacizb x0 // encoding: [0xe0,0x27,0xc1,0xda]
234 // CHECK-REQ: error: instruction requires: pa
235 // CHECK-REQ-NEXT: pacizb x0
236 autizb x0
237 // CHECK-NEXT: autizb x0 // encoding: [0xe0,0x37,0xc1,0xda]
238 // CHECK-REQ: error: instruction requires: pa
239 // CHECK-REQ-NEXT: autizb x0
240 pacdzb x0
241 // CHECK-NEXT: pacdzb x0 // encoding: [0xe0,0x2f,0xc1,0xda]
242 // CHECK-REQ: error: instruction requires: pa
243 // CHECK-REQ-NEXT: pacdzb x0
244 autdzb x0
245 // CHECK-NEXT: autdzb x0 // encoding: [0xe0,0x3f,0xc1,0xda]
246 // CHECK-REQ: error: instruction requires: pa
247 // CHECK-REQ-NEXT: autdzb x0
248 xpaci x0
249 // CHECK-NEXT: xpaci x0 // encoding: [0xe0,0x43,0xc1,0xda]
250 // CHECK-REQ: error: instruction requires: pa
251 // CHECK-REQ-NEXT: xpaci x0
252 xpacd x0
253 // CHECK-NEXT: xpacd x0 // encoding: [0xe0,0x47,0xc1,0xda]
254 // CHECK-REQ: error: instruction requires: pa
255 // CHECK-REQ-NEXT: xpacd x0
257 braa x0, x1
258 // CHECK-EMPTY:
259 // CHECK-NEXT: braa x0, x1 // encoding: [0x01,0x08,0x1f,0xd7]
260 // CHECK-REQ: error: instruction requires: pa
261 // CHECK-REQ-NEXT: braa x0, x1
262 brab x0, x1
263 // CHECK-NEXT: brab x0, x1 // encoding: [0x01,0x0c,0x1f,0xd7]
264 // CHECK-REQ: error: instruction requires: pa
265 // CHECK-REQ-NEXT: brab x0, x1
266 blraa x0, x1
267 // CHECK-NEXT: blraa x0, x1 // encoding: [0x01,0x08,0x3f,0xd7]
268 // CHECK-REQ: error: instruction requires: pa
269 // CHECK-REQ-NEXT: blraa x0, x1
270 blrab x0, x1
271 // CHECK-NEXT: blrab x0, x1 // encoding: [0x01,0x0c,0x3f,0xd7]
272 // CHECK-REQ: error: instruction requires: pa
273 // CHECK-REQ-NEXT: blrab x0, x1
275 braaz x0
276 // CHECK-EMPTY:
277 // CHECK-NEXT: braaz x0 // encoding: [0x1f,0x08,0x1f,0xd6]
278 // CHECK-REQ: error: instruction requires: pa
279 // CHECK-REQ-NEXT: braaz x0
280 brabz x0
281 // CHECK-NEXT: brabz x0 // encoding: [0x1f,0x0c,0x1f,0xd6]
282 // CHECK-REQ: error: instruction requires: pa
283 // CHECK-REQ-NEXT: brabz x0
284 blraaz x0
285 // CHECK-NEXT: blraaz x0 // encoding: [0x1f,0x08,0x3f,0xd6]
286 // CHECK-REQ: error: instruction requires: pa
287 // CHECK-REQ-NEXT: blraaz x0
288 blrabz x0
289 // CHECK-NEXT: blrabz x0 // encoding: [0x1f,0x0c,0x3f,0xd6]
290 // CHECK-REQ: error: instruction requires: pa
291 // CHECK-REQ-NEXT: blrabz x0
292 retaa
293 // CHECK-NEXT: retaa // encoding: [0xff,0x0b,0x5f,0xd6]
294 // CHECK-REQ: error: instruction requires: pa
295 // CHECK-REQ-NEXT: retaa
296 retab
297 // CHECK-NEXT: retab // encoding: [0xff,0x0f,0x5f,0xd6]
298 // CHECK-REQ: error: instruction requires: pa
299 // CHECK-REQ-NEXT: retab
300 eretaa
301 // CHECK-NEXT: eretaa // encoding: [0xff,0x0b,0x9f,0xd6]
302 // CHECK-REQ: error: instruction requires: pa
303 // CHECK-REQ-NEXT: eretaa
304 eretab
305 // CHECK-NEXT: eretab // encoding: [0xff,0x0f,0x9f,0xd6]
306 // CHECK-REQ: error: instruction requires: pa
307 // CHECK-REQ-NEXT: eretab
308 ldraa x0, [x1, 4088]
309 // CHECK-NEXT: ldraa x0, [x1, #4088] // encoding: [0x20,0xf4,0x3f,0xf8]
310 // CHECK-REQ: error: instruction requires: pa
311 // CHECK-REQ-NEXT: ldraa x0, [x1, 4088]
312 ldraa x0, [x1, -4096]
313 // CHECK-NEXT: ldraa x0, [x1, #-4096] // encoding: [0x20,0x04,0x60,0xf8]
314 // CHECK-REQ: error: instruction requires: pa
315 // CHECK-REQ-NEXT: ldraa x0, [x1, -4096]
316 ldrab x0, [x1, 4088]
317 // CHECK-NEXT: ldrab x0, [x1, #4088] // encoding: [0x20,0xf4,0xbf,0xf8]
318 // CHECK-REQ: error: instruction requires: pa
319 // CHECK-REQ-NEXT: ldrab x0, [x1, 4088]
320 ldrab x0, [x1, -4096]
321 // CHECK-NEXT: ldrab x0, [x1, #-4096] // encoding: [0x20,0x04,0xe0,0xf8]
322 // CHECK-REQ: error: instruction requires: pa
323 // CHECK-REQ-NEXT: ldrab x0, [x1, -4096]
324 ldraa x0, [x1, 4088]!
325 // CHECK-NEXT: ldraa x0, [x1, #4088]! // encoding: [0x20,0xfc,0x3f,0xf8]
326 // CHECK-REQ: error: instruction requires: pa
327 // CHECK-REQ-NEXT: ldraa x0, [x1, 4088]!
328 ldraa x0, [x1, -4096]!
329 // CHECK-NEXT: ldraa x0, [x1, #-4096]! // encoding: [0x20,0x0c,0x60,0xf8]
330 // CHECK-REQ: error: instruction requires: pa
331 // CHECK-REQ-NEXT: ldraa x0, [x1, -4096]!
332 ldrab x0, [x1, 4088]!
333 // CHECK-NEXT: ldrab x0, [x1, #4088]! // encoding: [0x20,0xfc,0xbf,0xf8]
334 // CHECK-REQ: error: instruction requires: pa
335 // CHECK-REQ-NEXT: ldrab x0, [x1, 4088]!
336 ldrab x0, [x1, -4096]!
337 // CHECK-NEXT: ldrab x0, [x1, #-4096]! // encoding: [0x20,0x0c,0xe0,0xf8]
338 // CHECK-REQ: error: instruction requires: pa
339 // CHECK-REQ-NEXT: ldrab x0, [x1, -4096]!
340 ldraa x0, [x1]
341 // CHECK-NEXT: ldraa x0, [x1] // encoding: [0x20,0x04,0x20,0xf8]
342 // CHECK-REQ: error: instruction requires: pa
343 // CHECK-REQ-NEXT: ldraa x0, [x1]
344 ldrab x0, [x1]
345 // CHECK-NEXT: ldrab x0, [x1] // encoding: [0x20,0x04,0xa0,0xf8]
346 // CHECK-REQ: error: instruction requires: pa
347 // CHECK-REQ-NEXT: ldrab x0, [x1]
348 ldraa x0, [x1]!
349 // CHECK-NEXT: ldraa x0, [x1, #0]! // encoding: [0x20,0x0c,0x20,0xf8]
350 // CHECK-REQ: error: instruction requires: pa
351 // CHECK-REQ-NEXT: ldraa x0, [x1]!
352 ldrab x0, [x1]!
353 // CHECK-NEXT: ldrab x0, [x1, #0]! // encoding: [0x20,0x0c,0xa0,0xf8]
354 // CHECK-REQ: error: instruction requires: pa
355 // CHECK-REQ-NEXT: ldrab x0, [x1]!
356 ldraa xzr, [sp, -4096]!
357 // CHECK-NEXT: ldraa xzr, [sp, #-4096]! // encoding: [0xff,0x0f,0x60,0xf8]
358 // CHECK-REQ: error: instruction requires: pa
359 // CHECK-REQ-NEXT: ldraa xzr, [sp, -4096]!
360 ldrab xzr, [sp, -4096]!
361 // CHECK-NEXT: ldrab xzr, [sp, #-4096]! // encoding: [0xff,0x0f,0xe0,0xf8]
362 // CHECK-REQ: error: instruction requires: pa
363 // CHECK-REQ-NEXT: ldrab xzr, [sp, -4096]!