xref: /minix3/external/bsd/llvm/dist/llvm/test/MC/AArch64/basic-a64-diagnostics.s (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1f4a2713aSLionel Sambuc// RUN: not llvm-mc -triple aarch64-none-linux-gnu < %s 2> %t
2*0a6a1f1dSLionel Sambuc// RUN: FileCheck --check-prefix=CHECK-ERROR --check-prefix=CHECK-ERROR-ARM64 < %t %s
3f4a2713aSLionel Sambuc
4f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
5f4a2713aSLionel Sambuc// Add/sub (extended register)
6f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
7f4a2713aSLionel Sambuc
8f4a2713aSLionel Sambuc        // Mismatched final register and extend
9f4a2713aSLionel Sambuc        add x2, x3, x5, sxtb
10f4a2713aSLionel Sambuc        add x2, x4, w2, uxtx
11f4a2713aSLionel Sambuc        add w5, w7, x9, sxtx
12f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
13f4a2713aSLionel Sambuc// CHECK-ERROR:         add x2, x3, x5, sxtb
14f4a2713aSLionel Sambuc// CHECK-ERROR:                         ^
15f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected '[su]xt[bhw]' or 'lsl' with optional integer in range [0, 4]
16f4a2713aSLionel Sambuc// CHECK-ERROR:         add x2, x4, w2, uxtx
17f4a2713aSLionel Sambuc// CHECK-ERROR:                         ^
18f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected compatible register, symbol or integer in range [0, 4095]
19f4a2713aSLionel Sambuc// CHECK-ERROR:         add w5, w7, x9, sxtx
20f4a2713aSLionel Sambuc// CHECK-ERROR:                     ^
21f4a2713aSLionel Sambuc
22f4a2713aSLionel Sambuc        // Out of range extends
23f4a2713aSLionel Sambuc        add x9, x10, w11, uxtb #-1
24f4a2713aSLionel Sambuc        add x3, x5, w7, uxtb #5
25f4a2713aSLionel Sambuc        sub x9, x15, x2, uxth #5
26f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected integer shift amount
27f4a2713aSLionel Sambuc// CHECK-ERROR:         add x9, x10, w11, uxtb #-1
28f4a2713aSLionel Sambuc// CHECK-ERROR:                                 ^
29f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected '[su]xt[bhw]' or 'lsl' with optional integer in range [0, 4]
30f4a2713aSLionel Sambuc// CHECK-ERROR:         add x3, x5, w7, uxtb #5
31f4a2713aSLionel Sambuc// CHECK-ERROR:                         ^
32f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
33f4a2713aSLionel Sambuc// CHECK-ERROR:         sub x9, x15, x2, uxth #5
34f4a2713aSLionel Sambuc// CHECK-ERROR:                          ^
35f4a2713aSLionel Sambuc
36f4a2713aSLionel Sambuc        // Wrong registers on normal variants
37f4a2713aSLionel Sambuc        add xzr, x3, x5, uxtx
38f4a2713aSLionel Sambuc        sub x3, xzr, w9, sxth #1
39f4a2713aSLionel Sambuc        add x1, x2, sp, uxtx
40f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 63]
41f4a2713aSLionel Sambuc// CHECK-ERROR:         add xzr, x3, x5, uxtx
42f4a2713aSLionel Sambuc// CHECK-ERROR:                          ^
43f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
44f4a2713aSLionel Sambuc// CHECK-ERROR:         sub x3, xzr, w9, sxth #1
45f4a2713aSLionel Sambuc// CHECK-ERROR:                 ^
46f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected compatible register, symbol or integer in range [0, 4095]
47f4a2713aSLionel Sambuc// CHECK-ERROR:         add x1, x2, sp, uxtx
48f4a2713aSLionel Sambuc// CHECK-ERROR:                     ^
49f4a2713aSLionel Sambuc
50f4a2713aSLionel Sambuc        // Wrong registers on flag-setting variants
51f4a2713aSLionel Sambuc        adds sp, x3, w2, uxtb
52f4a2713aSLionel Sambuc        adds x3, xzr, x9, uxtx
53f4a2713aSLionel Sambuc        subs x2, x1, sp, uxtx
54f4a2713aSLionel Sambuc        adds x2, x1, sp, uxtb #2
55f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
56f4a2713aSLionel Sambuc// CHECK-ERROR:         adds sp, x3, w2, uxtb
57f4a2713aSLionel Sambuc// CHECK-ERROR:              ^
58f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 63]
59f4a2713aSLionel Sambuc// CHECK-ERROR:         adds x3, xzr, x9, uxtx
60f4a2713aSLionel Sambuc// CHECK-ERROR:                           ^
61f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected compatible register, symbol or integer in range [0, 4095]
62f4a2713aSLionel Sambuc// CHECK-ERROR:         subs x2, x1, sp, uxtx
63f4a2713aSLionel Sambuc// CHECK-ERROR:                      ^
64f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected compatible register, symbol or integer in range [0, 4095]
65f4a2713aSLionel Sambuc// CHECK-ERROR:         adds x2, x1, sp, uxtb #2
66f4a2713aSLionel Sambuc// CHECK-ERROR:                      ^
67f4a2713aSLionel Sambuc
68f4a2713aSLionel Sambuc        // Amount not optional if lsl valid and used
69f4a2713aSLionel Sambuc        add sp, x5, x7, lsl
70f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected #imm after shift specifier
71f4a2713aSLionel Sambuc// CHECK-ERROR:         add sp, x5, x7, lsl
72f4a2713aSLionel Sambuc// CHECK-ERROR:                             ^
73f4a2713aSLionel Sambuc
74f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
75f4a2713aSLionel Sambuc// Add/sub (immediate)
76f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
77f4a2713aSLionel Sambuc
78f4a2713aSLionel Sambuc// Out of range immediates: < 0 or more than 12 bits
79f4a2713aSLionel Sambuc        add w4, w5, #-1
80f4a2713aSLionel Sambuc        add w5, w6, #0x1000
81f4a2713aSLionel Sambuc        add w4, w5, #-1, lsl #12
82f4a2713aSLionel Sambuc        add w5, w6, #0x1000, lsl #12
83f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected compatible register, symbol or integer in range [0, 4095]
84f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         add w4, w5, #-1
85f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
86*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT: error: expected compatible register, symbol or integer in range [0, 4095]
87*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT:         add w5, w6, #0x1000
88*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT:                     ^
89f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected compatible register, symbol or integer in range [0, 4095]
90f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         add w4, w5, #-1, lsl #12
91f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
92f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected compatible register, symbol or integer in range [0, 4095]
93f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         add w5, w6, #0x1000, lsl #12
94f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
95f4a2713aSLionel Sambuc
96f4a2713aSLionel Sambuc// Only lsl #0 and lsl #12 are allowed
97f4a2713aSLionel Sambuc        add w2, w3, #0x1, lsl #1
98f4a2713aSLionel Sambuc        add w5, w17, #0xfff, lsl #13
99f4a2713aSLionel Sambuc        add w17, w20, #0x1000, lsl #12
100f4a2713aSLionel Sambuc        sub xsp, x34, #0x100, lsl #-1
101f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected compatible register, symbol or integer in range [0, 4095]
102f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         add w2, w3, #0x1, lsl #1
103f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                                ^
104f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected compatible register, symbol or integer in range [0, 4095]
105f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         add w5, w17, #0xfff, lsl #13
106f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                                   ^
107f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected compatible register, symbol or integer in range [0, 4095]
108f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         add w17, w20, #0x1000, lsl #12
109f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
110f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: only 'lsl #+N' valid after immediate
111f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sub xsp, x34, #0x100, lsl #-1
112f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                                    ^
113f4a2713aSLionel Sambuc
114f4a2713aSLionel Sambuc// Incorrect registers (w31 doesn't exist at all, and 31 decodes to sp for these).
115f4a2713aSLionel Sambuc        add w31, w20, #1234
116f4a2713aSLionel Sambuc        add wzr, w20, #0x123
117f4a2713aSLionel Sambuc        add w20, wzr, #0x321
118f4a2713aSLionel Sambuc        add wzr, wzr, #0xfff
119f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
120f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         add w31, w20, #1234
121f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
122f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
123f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         add wzr, w20, #0x123
124f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
125f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
126f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         add w20, wzr, #0x321
127f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
128f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
129f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         add wzr, wzr, #0xfff
130f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
131f4a2713aSLionel Sambuc
132f4a2713aSLionel Sambuc// Mixed register classes
133f4a2713aSLionel Sambuc        add xsp, w2, #123
134f4a2713aSLionel Sambuc        sub w2, x30, #32
135f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
136f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         add xsp, w2, #123
137f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
138f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
139f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sub w2, x30, #32
140f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
141f4a2713aSLionel Sambuc
142f4a2713aSLionel Sambuc// Out of range immediate
143f4a2713aSLionel Sambuc        adds w0, w5, #0x10000
144*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64: error: expected compatible register, symbol or integer in range [0, 4095]
145*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT:         adds w0, w5, #0x10000
146*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT:                      ^
147f4a2713aSLionel Sambuc
148f4a2713aSLionel Sambuc// Wn|WSP should be in second place
149f4a2713aSLionel Sambuc        adds w4, wzr, #0x123
150f4a2713aSLionel Sambuc// ...but wzr is the 31 destination
151f4a2713aSLionel Sambuc        subs wsp, w5, #123
152f4a2713aSLionel Sambuc        subs x5, xzr, #0x456, lsl #12
153f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
154f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         adds w4, wzr, #0x123
155f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
156f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
157f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         subs wsp, w5, #123
158f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
159f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
160f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         subs x5, xzr, #0x456, lsl #12
161f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
162f4a2713aSLionel Sambuc
163f4a2713aSLionel Sambuc        // MOV alias should not accept any fiddling
164f4a2713aSLionel Sambuc        mov x2, xsp, #123
165f4a2713aSLionel Sambuc        mov wsp, w27, #0xfff, lsl #12
166f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected compatible register or logical immediate
167f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         mov x2, xsp, #123
168f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
169f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
170f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         mov wsp, w27, #0xfff, lsl #12
171f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
172f4a2713aSLionel Sambuc
173f4a2713aSLionel Sambuc        // A relocation should be provided for symbols
174f4a2713aSLionel Sambuc        add x3, x9, #variable
175f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected compatible register, symbol or integer in range [0, 4095]
176f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         add x3, x9, #variable
177f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
178f4a2713aSLionel Sambuc
179f4a2713aSLionel Sambuc
180f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
181f4a2713aSLionel Sambuc// Add-subtract (shifted register)
182f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
183f4a2713aSLionel Sambuc
184f4a2713aSLionel Sambuc        add wsp, w1, w2, lsr #3
185f4a2713aSLionel Sambuc        add x4, sp, x9, asr #5
186f4a2713aSLionel Sambuc        add x9, x10, x5, ror #3
187f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
188f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         add wsp, w1, w2, lsr #3
189f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                          ^
190f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
191f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         add x4, sp, x9, asr #5
192f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
193f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
194f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         add x9, x10, x5, ror #3
195f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                          ^
196f4a2713aSLionel Sambuc
197f4a2713aSLionel Sambuc        add w1, w2, w3, lsl #-1
198f4a2713aSLionel Sambuc        add w1, w2, w3, lsl #32
199f4a2713aSLionel Sambuc        add w1, w2, w3, lsr #-1
200f4a2713aSLionel Sambuc        add w1, w2, w3, lsr #32
201f4a2713aSLionel Sambuc        add w1, w2, w3, asr #-1
202f4a2713aSLionel Sambuc        add w1, w2, w3, asr #32
203f4a2713aSLionel Sambuc        add x1, x2, x3, lsl #-1
204f4a2713aSLionel Sambuc        add x1, x2, x3, lsl #64
205f4a2713aSLionel Sambuc        add x1, x2, x3, lsr #-1
206f4a2713aSLionel Sambuc        add x1, x2, x3, lsr #64
207f4a2713aSLionel Sambuc        add x1, x2, x3, asr #-1
208f4a2713aSLionel Sambuc        add x1, x2, x3, asr #64
209f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected integer shift amount
210f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         add w1, w2, w3, lsl #-1
211f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                              ^
212f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
213f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         add w1, w2, w3, lsl #32
214f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
215f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
216f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         add w1, w2, w3, lsr #-1
217f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                              ^
218f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
219f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         add w1, w2, w3, lsr #32
220f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
221f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
222f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         add w1, w2, w3, asr #-1
223f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                              ^
224f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
225f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         add w1, w2, w3, asr #32
226f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
227f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
228f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         add x1, x2, x3, lsl #-1
229f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                              ^
230f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
231f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         add x1, x2, x3, lsl #64
232f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
233f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
234f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         add x1, x2, x3, lsr #-1
235f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                              ^
236f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
237f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         add x1, x2, x3, lsr #64
238f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
239f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
240f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         add x1, x2, x3, asr #-1
241f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                              ^
242f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
243f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         add x1, x2, x3, asr #64
244f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
245f4a2713aSLionel Sambuc
246f4a2713aSLionel Sambuc        adds w1, w2, w3, lsl #-1
247f4a2713aSLionel Sambuc        adds w1, w2, w3, lsl #32
248f4a2713aSLionel Sambuc        adds w1, w2, w3, lsr #-1
249f4a2713aSLionel Sambuc        adds w1, w2, w3, lsr #32
250f4a2713aSLionel Sambuc        adds w1, w2, w3, asr #-1
251f4a2713aSLionel Sambuc        adds w1, w2, w3, asr #32
252f4a2713aSLionel Sambuc        adds x1, x2, x3, lsl #-1
253f4a2713aSLionel Sambuc        adds x1, x2, x3, lsl #64
254f4a2713aSLionel Sambuc        adds x1, x2, x3, lsr #-1
255f4a2713aSLionel Sambuc        adds x1, x2, x3, lsr #64
256f4a2713aSLionel Sambuc        adds x1, x2, x3, asr #-1
257f4a2713aSLionel Sambuc        adds x1, x2, x3, asr #64
258f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected integer shift amount
259f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         adds w1, w2, w3, lsl #-1
260f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                               ^
261f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
262f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         adds w1, w2, w3, lsl #32
263f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                          ^
264f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
265f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         adds w1, w2, w3, lsr #-1
266f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                               ^
267f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
268f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         adds w1, w2, w3, lsr #32
269f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                          ^
270f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
271f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         adds w1, w2, w3, asr #-1
272f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                               ^
273f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
274f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         adds w1, w2, w3, asr #32
275f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                          ^
276f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
277f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         adds x1, x2, x3, lsl #-1
278f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                               ^
279f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
280f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         adds x1, x2, x3, lsl #64
281f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                          ^
282f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
283f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         adds x1, x2, x3, lsr #-1
284f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                               ^
285f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
286f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         adds x1, x2, x3, lsr #64
287f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                          ^
288f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
289f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         adds x1, x2, x3, asr #-1
290f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                               ^
291f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
292f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         adds x1, x2, x3, asr #64
293f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                          ^
294f4a2713aSLionel Sambuc
295f4a2713aSLionel Sambuc        sub w1, w2, w3, lsl #-1
296f4a2713aSLionel Sambuc        sub w1, w2, w3, lsl #32
297f4a2713aSLionel Sambuc        sub w1, w2, w3, lsr #-1
298f4a2713aSLionel Sambuc        sub w1, w2, w3, lsr #32
299f4a2713aSLionel Sambuc        sub w1, w2, w3, asr #-1
300f4a2713aSLionel Sambuc        sub w1, w2, w3, asr #32
301f4a2713aSLionel Sambuc        sub x1, x2, x3, lsl #-1
302f4a2713aSLionel Sambuc        sub x1, x2, x3, lsl #64
303f4a2713aSLionel Sambuc        sub x1, x2, x3, lsr #-1
304f4a2713aSLionel Sambuc        sub x1, x2, x3, lsr #64
305f4a2713aSLionel Sambuc        sub x1, x2, x3, asr #-1
306f4a2713aSLionel Sambuc        sub x1, x2, x3, asr #64
307f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected integer shift amount
308f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sub w1, w2, w3, lsl #-1
309f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                              ^
310f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
311f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sub w1, w2, w3, lsl #32
312f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
313f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
314f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sub w1, w2, w3, lsr #-1
315f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                              ^
316f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
317f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sub w1, w2, w3, lsr #32
318f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
319f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
320f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sub w1, w2, w3, asr #-1
321f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                              ^
322f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
323f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sub w1, w2, w3, asr #32
324f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
325f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
326f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sub x1, x2, x3, lsl #-1
327f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                              ^
328f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
329f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sub x1, x2, x3, lsl #64
330f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
331f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
332f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sub x1, x2, x3, lsr #-1
333f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                              ^
334f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
335f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sub x1, x2, x3, lsr #64
336f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
337f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
338f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sub x1, x2, x3, asr #-1
339f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                              ^
340f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
341f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sub x1, x2, x3, asr #64
342f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
343f4a2713aSLionel Sambuc
344f4a2713aSLionel Sambuc        subs w1, w2, w3, lsl #-1
345f4a2713aSLionel Sambuc        subs w1, w2, w3, lsl #32
346f4a2713aSLionel Sambuc        subs w1, w2, w3, lsr #-1
347f4a2713aSLionel Sambuc        subs w1, w2, w3, lsr #32
348f4a2713aSLionel Sambuc        subs w1, w2, w3, asr #-1
349f4a2713aSLionel Sambuc        subs w1, w2, w3, asr #32
350f4a2713aSLionel Sambuc        subs x1, x2, x3, lsl #-1
351f4a2713aSLionel Sambuc        subs x1, x2, x3, lsl #64
352f4a2713aSLionel Sambuc        subs x1, x2, x3, lsr #-1
353f4a2713aSLionel Sambuc        subs x1, x2, x3, lsr #64
354f4a2713aSLionel Sambuc        subs x1, x2, x3, asr #-1
355f4a2713aSLionel Sambuc        subs x1, x2, x3, asr #64
356f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected integer shift amount
357f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         subs w1, w2, w3, lsl #-1
358f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                               ^
359f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
360f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         subs w1, w2, w3, lsl #32
361f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                          ^
362f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
363f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         subs w1, w2, w3, lsr #-1
364f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                               ^
365f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
366f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         subs w1, w2, w3, lsr #32
367f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                          ^
368f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
369f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         subs w1, w2, w3, asr #-1
370f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                               ^
371f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
372f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         subs w1, w2, w3, asr #32
373f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                          ^
374f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
375f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         subs x1, x2, x3, lsl #-1
376f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                               ^
377f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
378f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         subs x1, x2, x3, lsl #64
379f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                          ^
380f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
381f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         subs x1, x2, x3, lsr #-1
382f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                               ^
383f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
384f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         subs x1, x2, x3, lsr #64
385f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                          ^
386f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
387f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         subs x1, x2, x3, asr #-1
388f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                               ^
389f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
390f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         subs x1, x2, x3, asr #64
391f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                          ^
392f4a2713aSLionel Sambuc
393f4a2713aSLionel Sambuc        cmn w9, w10, lsl #-1
394f4a2713aSLionel Sambuc        cmn w9, w10, lsl #32
395f4a2713aSLionel Sambuc        cmn w11, w12, lsr #-1
396f4a2713aSLionel Sambuc        cmn w11, w12, lsr #32
397f4a2713aSLionel Sambuc        cmn w19, wzr, asr #-1
398f4a2713aSLionel Sambuc        cmn wzr, wzr, asr #32
399f4a2713aSLionel Sambuc        cmn x9, x10, lsl #-1
400f4a2713aSLionel Sambuc        cmn x9, x10, lsl #64
401f4a2713aSLionel Sambuc        cmn x11, x12, lsr #-1
402f4a2713aSLionel Sambuc        cmn x11, x12, lsr #64
403f4a2713aSLionel Sambuc        cmn x19, xzr, asr #-1
404f4a2713aSLionel Sambuc        cmn xzr, xzr, asr #64
405f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected integer shift amount
406f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         cmn w9, w10, lsl #-1
407f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
408f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
409f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         cmn w9, w10, lsl #32
410f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
411f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
412f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         cmn w11, w12, lsr #-1
413f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                            ^
414f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
415f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         cmn w11, w12, lsr #32
416f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
417f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
418f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         cmn w19, wzr, asr #-1
419f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                            ^
420f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 31]
421f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         cmn wzr, wzr, asr #32
422f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
423f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
424f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         cmn x9, x10, lsl #-1
425f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
426f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
427f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         cmn x9, x10, lsl #64
428f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
429f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
430f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         cmn x11, x12, lsr #-1
431f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                            ^
432f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
433f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         cmn x11, x12, lsr #64
434f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
435f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
436f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         cmn x19, xzr, asr #-1
437f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                            ^
438f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 63]
439f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         cmn xzr, xzr, asr #64
440f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
441f4a2713aSLionel Sambuc
442f4a2713aSLionel Sambuc        cmp w9, w10, lsl #-1
443f4a2713aSLionel Sambuc        cmp w9, w10, lsl #32
444f4a2713aSLionel Sambuc        cmp w11, w12, lsr #-1
445f4a2713aSLionel Sambuc        cmp w11, w12, lsr #32
446f4a2713aSLionel Sambuc        cmp w19, wzr, asr #-1
447f4a2713aSLionel Sambuc        cmp wzr, wzr, asr #32
448f4a2713aSLionel Sambuc        cmp x9, x10, lsl #-1
449f4a2713aSLionel Sambuc        cmp x9, x10, lsl #64
450f4a2713aSLionel Sambuc        cmp x11, x12, lsr #-1
451f4a2713aSLionel Sambuc        cmp x11, x12, lsr #64
452f4a2713aSLionel Sambuc        cmp x19, xzr, asr #-1
453f4a2713aSLionel Sambuc        cmp xzr, xzr, asr #64
454f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected integer shift amount
455f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         cmp w9, w10, lsl #-1
456f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
457f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
458f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         cmp w9, w10, lsl #32
459f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
460f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
461f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         cmp w11, w12, lsr #-1
462f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                            ^
463f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
464f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         cmp w11, w12, lsr #32
465f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
466f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
467f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         cmp w19, wzr, asr #-1
468f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                            ^
469f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 31]
470f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         cmp wzr, wzr, asr #32
471f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
472f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
473f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         cmp x9, x10, lsl #-1
474f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
475f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
476f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         cmp x9, x10, lsl #64
477f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
478f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
479f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         cmp x11, x12, lsr #-1
480f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                            ^
481f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4]
482f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         cmp x11, x12, lsr #64
483f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
484f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
485f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         cmp x19, xzr, asr #-1
486f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                            ^
487f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 63]
488f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         cmp xzr, xzr, asr #64
489f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
490f4a2713aSLionel Sambuc
491f4a2713aSLionel Sambuc        neg w9, w10, lsl #-1
492f4a2713aSLionel Sambuc        neg w9, w10, lsl #32
493f4a2713aSLionel Sambuc        neg w11, w12, lsr #-1
494f4a2713aSLionel Sambuc        neg w11, w12, lsr #32
495f4a2713aSLionel Sambuc        neg w19, wzr, asr #-1
496f4a2713aSLionel Sambuc        neg wzr, wzr, asr #32
497f4a2713aSLionel Sambuc        neg x9, x10, lsl #-1
498f4a2713aSLionel Sambuc        neg x9, x10, lsl #64
499f4a2713aSLionel Sambuc        neg x11, x12, lsr #-1
500f4a2713aSLionel Sambuc        neg x11, x12, lsr #64
501f4a2713aSLionel Sambuc        neg x19, xzr, asr #-1
502f4a2713aSLionel Sambuc        neg xzr, xzr, asr #64
503f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected integer shift amount
504f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         neg w9, w10, lsl #-1
505f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
506f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 31]
507f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         neg w9, w10, lsl #32
508f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
509f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
510f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         neg w11, w12, lsr #-1
511f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                            ^
512f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 31]
513f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         neg w11, w12, lsr #32
514f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
515f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
516f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         neg w19, wzr, asr #-1
517f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                            ^
518f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 31]
519f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         neg wzr, wzr, asr #32
520f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
521f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
522f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         neg x9, x10, lsl #-1
523f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
524f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 63]
525f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         neg x9, x10, lsl #64
526f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
527f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
528f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         neg x11, x12, lsr #-1
529f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                            ^
530f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 63]
531f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         neg x11, x12, lsr #64
532f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
533f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
534f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         neg x19, xzr, asr #-1
535f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                            ^
536f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 63]
537f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         neg xzr, xzr, asr #64
538f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
539f4a2713aSLionel Sambuc
540f4a2713aSLionel Sambuc        negs w9, w10, lsl #-1
541f4a2713aSLionel Sambuc        negs w9, w10, lsl #32
542f4a2713aSLionel Sambuc        negs w11, w12, lsr #-1
543f4a2713aSLionel Sambuc        negs w11, w12, lsr #32
544f4a2713aSLionel Sambuc        negs w19, wzr, asr #-1
545f4a2713aSLionel Sambuc        negs wzr, wzr, asr #32
546f4a2713aSLionel Sambuc        negs x9, x10, lsl #-1
547f4a2713aSLionel Sambuc        negs x9, x10, lsl #64
548f4a2713aSLionel Sambuc        negs x11, x12, lsr #-1
549f4a2713aSLionel Sambuc        negs x11, x12, lsr #64
550f4a2713aSLionel Sambuc        negs x19, xzr, asr #-1
551f4a2713aSLionel Sambuc        negs xzr, xzr, asr #64
552f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected integer shift amount
553f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         negs w9, w10, lsl #-1
554f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                            ^
555f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 31]
556f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         negs w9, w10, lsl #32
557f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
558f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
559f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         negs w11, w12, lsr #-1
560f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                             ^
561f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 31]
562f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         negs w11, w12, lsr #32
563f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                        ^
564f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
565f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         negs w19, wzr, asr #-1
566f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                             ^
567f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 31]
568f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         negs wzr, wzr, asr #32
569f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                        ^
570f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
571f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         negs x9, x10, lsl #-1
572f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                            ^
573f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 63]
574f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         negs x9, x10, lsl #64
575f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
576f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
577f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         negs x11, x12, lsr #-1
578f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                             ^
579f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 63]
580f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         negs x11, x12, lsr #64
581f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                        ^
582f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
583f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         negs x19, xzr, asr #-1
584f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                             ^
585f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 63]
586f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         negs xzr, xzr, asr #64
587f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                        ^
588f4a2713aSLionel Sambuc
589f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
590f4a2713aSLionel Sambuc// Add-subtract (shifted register)
591f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
592f4a2713aSLionel Sambuc
593f4a2713aSLionel Sambuc        adc wsp, w3, w5
594f4a2713aSLionel Sambuc        adc w1, wsp, w2
595f4a2713aSLionel Sambuc        adc w0, w10, wsp
596f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
597f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        adc wsp, w3, w5
598f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:            ^
599f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
600f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         adc w1, wsp, w2
601f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
602f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
603f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         adc w0, w10, wsp
604f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
605f4a2713aSLionel Sambuc
606f4a2713aSLionel Sambuc        adc sp, x3, x5
607f4a2713aSLionel Sambuc        adc x1, sp, x2
608f4a2713aSLionel Sambuc        adc x0, x10, sp
609f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
610f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         adc sp, x3, x5
611f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
612f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
613f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         adc x1, sp, x2
614f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
615f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
616f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         adc x0, x10, sp
617f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
618f4a2713aSLionel Sambuc
619f4a2713aSLionel Sambuc        adcs wsp, w3, w5
620f4a2713aSLionel Sambuc        adcs w1, wsp, w2
621f4a2713aSLionel Sambuc        adcs w0, w10, wsp
622f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
623f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         adcs wsp, w3, w5
624f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
625f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
626f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         adcs w1, wsp, w2
627f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
628f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
629f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         adcs w0, w10, wsp
630f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
631f4a2713aSLionel Sambuc
632f4a2713aSLionel Sambuc        adcs sp, x3, x5
633f4a2713aSLionel Sambuc        adcs x1, sp, x2
634f4a2713aSLionel Sambuc        adcs x0, x10, sp
635f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
636f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         adcs sp, x3, x5
637f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
638f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
639f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         adcs x1, sp, x2
640f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
641f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
642f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         adcs x0, x10, sp
643f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
644f4a2713aSLionel Sambuc
645f4a2713aSLionel Sambuc        sbc wsp, w3, w5
646f4a2713aSLionel Sambuc        sbc w1, wsp, w2
647f4a2713aSLionel Sambuc        sbc w0, w10, wsp
648f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
649f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sbc wsp, w3, w5
650f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
651f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
652f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sbc w1, wsp, w2
653f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
654f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
655f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sbc w0, w10, wsp
656f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
657f4a2713aSLionel Sambuc
658f4a2713aSLionel Sambuc        sbc sp, x3, x5
659f4a2713aSLionel Sambuc        sbc x1, sp, x2
660f4a2713aSLionel Sambuc        sbc x0, x10, sp
661f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
662f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sbc sp, x3, x5
663f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
664f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
665f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sbc x1, sp, x2
666f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
667f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
668f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sbc x0, x10, sp
669f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
670f4a2713aSLionel Sambuc
671f4a2713aSLionel Sambuc        sbcs wsp, w3, w5
672f4a2713aSLionel Sambuc        sbcs w1, wsp, w2
673f4a2713aSLionel Sambuc        sbcs w0, w10, wsp
674f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
675f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sbcs wsp, w3, w5
676f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
677f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
678f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sbcs w1, wsp, w2
679f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
680f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
681f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sbcs w0, w10, wsp
682f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
683f4a2713aSLionel Sambuc
684f4a2713aSLionel Sambuc        sbcs sp, x3, x5
685f4a2713aSLionel Sambuc        sbcs x1, sp, x2
686f4a2713aSLionel Sambuc        sbcs x0, x10, sp
687f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
688f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sbcs sp, x3, x5
689f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
690f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
691f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sbcs x1, sp, x2
692f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
693f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
694f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sbcs x0, x10, sp
695f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
696f4a2713aSLionel Sambuc
697f4a2713aSLionel Sambuc        ngc wsp, w3
698f4a2713aSLionel Sambuc        ngc w9, wsp
699f4a2713aSLionel Sambuc        ngc sp, x9
700f4a2713aSLionel Sambuc        ngc x2, sp
701f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
702f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ngc wsp, w3
703f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
704f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
705f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ngc w9, wsp
706f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
707f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
708f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ngc sp, x9
709f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
710f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
711f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ngc x2, sp
712f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
713f4a2713aSLionel Sambuc
714f4a2713aSLionel Sambuc        ngcs wsp, w3
715f4a2713aSLionel Sambuc        ngcs w9, wsp
716f4a2713aSLionel Sambuc        ngcs sp, x9
717f4a2713aSLionel Sambuc        ngcs x2, sp
718f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
719f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ngcs wsp, w3
720f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
721f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
722f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ngcs w9, wsp
723f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
724f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
725f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ngcs sp, x9
726f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
727f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
728f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ngcs x2, sp
729f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
730f4a2713aSLionel Sambuc
731f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
732*0a6a1f1dSLionel Sambuc// Logical (immediates)
733*0a6a1f1dSLionel Sambuc//------------------------------------------------------------------------------
734*0a6a1f1dSLionel Sambuc
735*0a6a1f1dSLionel Sambuc        and w2, w3, #4294967296
736*0a6a1f1dSLionel Sambuc        eor w2, w3, #4294967296
737*0a6a1f1dSLionel Sambuc        orr w2, w3, #4294967296
738*0a6a1f1dSLionel Sambuc        ands w2, w3, #4294967296
739*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: expected compatible register or logical immediate
740*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:         and w2, w3, #4294967296
741*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
742*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: expected compatible register or logical immediate
743*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:         eor w2, w3, #4294967296
744*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
745*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: expected compatible register or logical immediate
746*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:         orr w2, w3, #4294967296
747*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
748*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: expected compatible register or logical immediate
749*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:         ands w2, w3, #4294967296
750*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
751*0a6a1f1dSLionel Sambuc
752*0a6a1f1dSLionel Sambuc//------------------------------------------------------------------------------
753f4a2713aSLionel Sambuc// Bitfield
754f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
755f4a2713aSLionel Sambuc
756f4a2713aSLionel Sambuc        sbfm x3, w13, #0, #0
757f4a2713aSLionel Sambuc        sbfm w12, x9, #0, #0
758f4a2713aSLionel Sambuc        sbfm sp, x3, #3, #5
759f4a2713aSLionel Sambuc        sbfm w3, wsp, #1, #9
760f4a2713aSLionel Sambuc        sbfm x9, x5, #-1, #0
761f4a2713aSLionel Sambuc        sbfm x9, x5, #0, #-1
762f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
763f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sbfm x3, w13, #0, #0
764f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
765f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
766f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sbfm w12, x9, #0, #0
767f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                   ^
768f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
769f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sbfm sp, x3, #3, #5
770f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
771f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
772f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sbfm w3, wsp, #1, #9
773f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
774*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 63]
775f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sbfm x9, x5, #-1, #0
776f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
777*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 63]
778f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sbfm x9, x5, #0, #-1
779f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                          ^
780f4a2713aSLionel Sambuc
781f4a2713aSLionel Sambuc        sbfm w3, w5, #32, #1
782f4a2713aSLionel Sambuc        sbfm w7, w11, #19, #32
783f4a2713aSLionel Sambuc        sbfm x29, x30, #64, #0
784f4a2713aSLionel Sambuc        sbfm x10, x20, #63, #64
785*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 31]
786f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sbfm w3, w5, #32, #1
787f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
788*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31]
789f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sbfm w7, w11, #19, #32
790f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                            ^
791*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 63]
792f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sbfm x29, x30, #64, #0
793f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                        ^
794*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 63]
795f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sbfm x10, x20, #63, #64
796f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                             ^
797f4a2713aSLionel Sambuc
798f4a2713aSLionel Sambuc        ubfm w3, w5, #32, #1
799f4a2713aSLionel Sambuc        ubfm w7, w11, #19, #32
800f4a2713aSLionel Sambuc        ubfm x29, x30, #64, #0
801f4a2713aSLionel Sambuc        ubfm x10, x20, #63, #64
802*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 31]
803f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ubfm w3, w5, #32, #1
804f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
805*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31]
806f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ubfm w7, w11, #19, #32
807f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                            ^
808*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 63]
809f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ubfm x29, x30, #64, #0
810f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                        ^
811*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 63]
812f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ubfm x10, x20, #63, #64
813f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                             ^
814f4a2713aSLionel Sambuc
815f4a2713aSLionel Sambuc        bfm w3, w5, #32, #1
816f4a2713aSLionel Sambuc        bfm w7, w11, #19, #32
817f4a2713aSLionel Sambuc        bfm x29, x30, #64, #0
818f4a2713aSLionel Sambuc        bfm x10, x20, #63, #64
819*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 31]
820f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         bfm w3, w5, #32, #1
821f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
822*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31]
823f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         bfm w7, w11, #19, #32
824f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                            ^
825*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 63]
826f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         bfm x29, x30, #64, #0
827f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                        ^
828*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 63]
829f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         bfm x10, x20, #63, #64
830f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                             ^
831f4a2713aSLionel Sambuc
832f4a2713aSLionel Sambuc        sxtb x3, x2
833f4a2713aSLionel Sambuc        sxth xzr, xzr
834f4a2713aSLionel Sambuc        sxtw x3, x5
835*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64: error: invalid operand for instruction
836*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT:         sxtb x3, x2
837*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT:                  ^
838*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT: error: invalid operand for instruction
839*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT:         sxth xzr, xzr
840*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT:                   ^
841*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT: error: invalid operand for instruction
842*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT:         sxtw x3, x5
843*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT:                  ^
844f4a2713aSLionel Sambuc
845f4a2713aSLionel Sambuc        uxtb x3, x12
846f4a2713aSLionel Sambuc        uxth x5, x9
847f4a2713aSLionel Sambuc        uxtw x3, x5
848f4a2713aSLionel Sambuc        uxtb x2, sp
849f4a2713aSLionel Sambuc        uxtb sp, xzr
850f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
851f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         uxtb x3, x12
852f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
853f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
854f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         uxth x5, x9
855f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
856*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT: error: invalid instruction
857*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT:         uxtw x3, x5
858*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT:         ^
859f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
860f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         uxtb x2, sp
861f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
862f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
863f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         uxtb sp, xzr
864f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
865f4a2713aSLionel Sambuc
866f4a2713aSLionel Sambuc        asr x3, w2, #1
867f4a2713aSLionel Sambuc        asr sp, x2, #1
868f4a2713aSLionel Sambuc        asr x25, x26, #-1
869f4a2713aSLionel Sambuc        asr x25, x26, #64
870f4a2713aSLionel Sambuc        asr w9, w8, #32
871f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
872f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         asr x3, w2, #1
873f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
874f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
875f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         asr sp, x2, #1
876f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
877*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 63]
878f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         asr x25, x26, #-1
879f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
880*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 63]
881f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         asr x25, x26, #64
882f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
883*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31]
884f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         asr w9, w8, #32
885f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
886f4a2713aSLionel Sambuc
887f4a2713aSLionel Sambuc        sbfiz w1, w2, #0, #0
888f4a2713aSLionel Sambuc        sbfiz wsp, w9, #0, #1
889f4a2713aSLionel Sambuc        sbfiz w9, w10, #32, #1
890f4a2713aSLionel Sambuc        sbfiz w11, w12, #32, #0
891f4a2713aSLionel Sambuc        sbfiz w9, w10, #10, #23
892f4a2713aSLionel Sambuc        sbfiz x3, x5, #12, #53
893*0a6a1f1dSLionel Sambuc        sbfiz sp, x3, #7, #6
894*0a6a1f1dSLionel Sambuc        sbfiz w3, wsp, #10, #8
895*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64: error: expected integer in range [<lsb>, 31]
896*0a6a1f1dSLionel Sambuc// CHECK-ERROR-ARM64: error: expected integer in range [1, 32]
897f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sbfiz w1, w2, #0, #0
898f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
899f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
900f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sbfiz wsp, w9, #0, #1
901f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:               ^
902*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31]
903f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sbfiz w9, w10, #32, #1
904f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                        ^
905*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31]
906f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sbfiz w11, w12, #32, #0
907f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
908f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: requested insert overflows register
909f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sbfiz w9, w10, #10, #23
910f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                             ^
911f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: requested insert overflows register
912f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sbfiz x3, x5, #12, #53
913f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                            ^
914f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
915*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:         sbfiz sp, x3, #7, #6
916f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:               ^
917f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
918*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:         sbfiz w3, wsp, #10, #8
919f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                   ^
920f4a2713aSLionel Sambuc
921f4a2713aSLionel Sambuc        sbfx w1, w2, #0, #0
922f4a2713aSLionel Sambuc        sbfx wsp, w9, #0, #1
923f4a2713aSLionel Sambuc        sbfx w9, w10, #32, #1
924f4a2713aSLionel Sambuc        sbfx w11, w12, #32, #0
925f4a2713aSLionel Sambuc        sbfx w9, w10, #10, #23
926f4a2713aSLionel Sambuc        sbfx x3, x5, #12, #53
927*0a6a1f1dSLionel Sambuc        sbfx sp, x3, #7, #6
928*0a6a1f1dSLionel Sambuc        sbfx w3, wsp, #10, #8
929*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64: error: expected integer in range [<lsb>, 31]
930*0a6a1f1dSLionel Sambuc// CHECK-ERROR-ARM64: error: expected integer in range [1, 32]
931f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sbfx w1, w2, #0, #0
932f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                          ^
933f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
934f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sbfx wsp, w9, #0, #1
935f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
936*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31]
937f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sbfx w9, w10, #32, #1
938f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
939*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31]
940f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sbfx w11, w12, #32, #0
941f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                        ^
942f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: requested extract overflows register
943f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sbfx w9, w10, #10, #23
944f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                            ^
945f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: requested extract overflows register
946f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sbfx x3, x5, #12, #53
947f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
948f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
949*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:         sbfx sp, x3, #7, #6
950f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
951f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
952*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:         sbfx w3, wsp, #10, #8
953f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
954f4a2713aSLionel Sambuc
955f4a2713aSLionel Sambuc        bfi w1, w2, #0, #0
956f4a2713aSLionel Sambuc        bfi wsp, w9, #0, #1
957f4a2713aSLionel Sambuc        bfi w9, w10, #32, #1
958f4a2713aSLionel Sambuc        bfi w11, w12, #32, #0
959f4a2713aSLionel Sambuc        bfi w9, w10, #10, #23
960f4a2713aSLionel Sambuc        bfi x3, x5, #12, #53
961*0a6a1f1dSLionel Sambuc        bfi sp, x3, #7, #6
962*0a6a1f1dSLionel Sambuc        bfi w3, wsp, #10, #8
963*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64: error: expected integer in range [<lsb>, 31]
964*0a6a1f1dSLionel Sambuc// CHECK-ERROR-ARM64: error: expected integer in range [1, 32]
965f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         bfi w1, w2, #0, #0
966f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
967f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
968f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         bfi wsp, w9, #0, #1
969f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
970*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31]
971f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         bfi w9, w10, #32, #1
972f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
973*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31]
974f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         bfi w11, w12, #32, #0
975f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
976f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: requested insert overflows register
977f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         bfi w9, w10, #10, #23
978f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
979f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: requested insert overflows register
980f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         bfi x3, x5, #12, #53
981f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                          ^
982f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
983*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:         bfi sp, x3, #7, #6
984f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
985f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
986*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:         bfi w3, wsp, #10, #8
987f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
988f4a2713aSLionel Sambuc
989f4a2713aSLionel Sambuc        bfxil w1, w2, #0, #0
990f4a2713aSLionel Sambuc        bfxil wsp, w9, #0, #1
991f4a2713aSLionel Sambuc        bfxil w9, w10, #32, #1
992f4a2713aSLionel Sambuc        bfxil w11, w12, #32, #0
993f4a2713aSLionel Sambuc        bfxil w9, w10, #10, #23
994f4a2713aSLionel Sambuc        bfxil x3, x5, #12, #53
995*0a6a1f1dSLionel Sambuc        bfxil sp, x3, #7, #6
996*0a6a1f1dSLionel Sambuc        bfxil w3, wsp, #10, #8
997*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64: error: expected integer in range [<lsb>, 31]
998*0a6a1f1dSLionel Sambuc// CHECK-ERROR-ARM64: error: expected integer in range [1, 32]
999f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         bfxil w1, w2, #0, #0
1000f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
1001f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1002f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         bfxil wsp, w9, #0, #1
1003f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:               ^
1004*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31]
1005f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         bfxil w9, w10, #32, #1
1006f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                        ^
1007*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31]
1008f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         bfxil w11, w12, #32, #0
1009f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
1010f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: requested extract overflows register
1011f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         bfxil w9, w10, #10, #23
1012f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                             ^
1013f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: requested extract overflows register
1014f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         bfxil x3, x5, #12, #53
1015f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                            ^
1016f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1017*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:         bfxil sp, x3, #7, #6
1018f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:               ^
1019f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1020*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:         bfxil w3, wsp, #10, #8
1021f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                   ^
1022f4a2713aSLionel Sambuc
1023f4a2713aSLionel Sambuc        ubfiz w1, w2, #0, #0
1024f4a2713aSLionel Sambuc        ubfiz wsp, w9, #0, #1
1025f4a2713aSLionel Sambuc        ubfiz w9, w10, #32, #1
1026f4a2713aSLionel Sambuc        ubfiz w11, w12, #32, #0
1027f4a2713aSLionel Sambuc        ubfiz w9, w10, #10, #23
1028f4a2713aSLionel Sambuc        ubfiz x3, x5, #12, #53
1029*0a6a1f1dSLionel Sambuc        ubfiz sp, x3, #7, #6
1030*0a6a1f1dSLionel Sambuc        ubfiz w3, wsp, #10, #8
1031*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64: error: expected integer in range [<lsb>, 31]
1032*0a6a1f1dSLionel Sambuc// CHECK-ERROR-ARM64: error: expected integer in range [1, 32]
1033f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ubfiz w1, w2, #0, #0
1034f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
1035f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1036f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ubfiz wsp, w9, #0, #1
1037f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:               ^
1038*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31]
1039f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ubfiz w9, w10, #32, #1
1040f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                        ^
1041*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31]
1042f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ubfiz w11, w12, #32, #0
1043f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
1044f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: requested insert overflows register
1045f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ubfiz w9, w10, #10, #23
1046f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                             ^
1047f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: requested insert overflows register
1048f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ubfiz x3, x5, #12, #53
1049f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                            ^
1050f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1051*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:         ubfiz sp, x3, #7, #6
1052f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:               ^
1053f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1054*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:         ubfiz w3, wsp, #10, #8
1055f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                   ^
1056f4a2713aSLionel Sambuc
1057f4a2713aSLionel Sambuc        ubfx w1, w2, #0, #0
1058f4a2713aSLionel Sambuc        ubfx wsp, w9, #0, #1
1059f4a2713aSLionel Sambuc        ubfx w9, w10, #32, #1
1060f4a2713aSLionel Sambuc        ubfx w11, w12, #32, #0
1061f4a2713aSLionel Sambuc        ubfx w9, w10, #10, #23
1062f4a2713aSLionel Sambuc        ubfx x3, x5, #12, #53
1063*0a6a1f1dSLionel Sambuc        ubfx sp, x3, #7, #6
1064*0a6a1f1dSLionel Sambuc        ubfx w3, wsp, #10, #8
1065*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64: error: expected integer in range [<lsb>, 31]
1066*0a6a1f1dSLionel Sambuc// CHECK-ERROR-ARM64: error: expected integer in range [1, 32]
1067f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ubfx w1, w2, #0, #0
1068f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
1069f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1070f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ubfx wsp, w9, #0, #1
1071f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
1072*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31]
1073f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ubfx w9, w10, #32, #1
1074f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
1075*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31]
1076f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ubfx w11, w12, #32, #0
1077f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                        ^
1078f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: requested extract overflows register
1079f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ubfx w9, w10, #10, #23
1080f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                            ^
1081f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: requested extract overflows register
1082f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ubfx x3, x5, #12, #53
1083f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
1084f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1085*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:         ubfx sp, x3, #7, #6
1086f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
1087f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1088*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:         ubfx w3, wsp, #10, #8
1089f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
1090f4a2713aSLionel Sambuc
1091f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1092f4a2713aSLionel Sambuc// Compare & branch (immediate)
1093f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1094f4a2713aSLionel Sambuc
1095f4a2713aSLionel Sambuc        cbnz wsp, lbl
1096f4a2713aSLionel Sambuc        cbz  sp, lbl
1097f4a2713aSLionel Sambuc        cbz  x3, x5
1098f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
1099f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:           cbnz wsp, lbl
1100f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                ^
1101f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1102f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:           cbz sp, lbl
1103f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:               ^
1104f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected label or encodable integer pc offset
1105f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:           cbz x3, x5
1106f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                   ^
1107f4a2713aSLionel Sambuc
1108f4a2713aSLionel Sambuc        cbz w20, #1048576
1109f4a2713aSLionel Sambuc        cbnz xzr, #-1048580
1110f4a2713aSLionel Sambuc        cbz x29, #1
1111f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected label or encodable integer pc offset
1112f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:           cbz w20, #1048576
1113f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
1114f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected label or encodable integer pc offset
1115f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:           cbnz xzr, #-1048580
1116f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                    ^
1117f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected label or encodable integer pc offset
1118f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:           cbz x29, #1
1119f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                    ^
1120f4a2713aSLionel Sambuc
1121f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1122f4a2713aSLionel Sambuc// Conditional branch (immediate)
1123f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1124f4a2713aSLionel Sambuc
1125f4a2713aSLionel Sambuc        b.zf lbl
1126f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid condition code
1127f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:           b.zf lbl
1128f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
1129f4a2713aSLionel Sambuc
1130f4a2713aSLionel Sambuc        b.eq #1048576
1131f4a2713aSLionel Sambuc        b.ge #-1048580
1132f4a2713aSLionel Sambuc        b.cc #1
1133f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected label or encodable integer pc offset
1134f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:           b.eq #1048576
1135f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                ^
1136f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected label or encodable integer pc offset
1137f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:           b.ge #-1048580
1138f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                ^
1139f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected label or encodable integer pc offset
1140f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:           b.cc #1
1141f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                ^
1142f4a2713aSLionel Sambuc
1143f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1144f4a2713aSLionel Sambuc// Conditional compare (immediate)
1145f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1146f4a2713aSLionel Sambuc
1147f4a2713aSLionel Sambuc        ccmp wsp, #4, #2, ne
1148f4a2713aSLionel Sambuc        ccmp w25, #-1, #15, hs
1149f4a2713aSLionel Sambuc        ccmp w3, #32, #0, ge
1150f4a2713aSLionel Sambuc        ccmp w19, #5, #-1, lt
1151f4a2713aSLionel Sambuc        ccmp w20, #7, #16, hs
1152f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
1153f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmp wsp, #4, #2, ne
1154f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
1155*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31]
1156f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmp w25, #-1, #15, hs
1157f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
1158*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31]
1159f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmp w3, #32, #0, ge
1160f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
1161*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15]
1162f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmp w19, #5, #-1, lt
1163f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
1164*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15]
1165f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmp w20, #7, #16, hs
1166f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
1167f4a2713aSLionel Sambuc
1168f4a2713aSLionel Sambuc        ccmp sp, #4, #2, ne
1169f4a2713aSLionel Sambuc        ccmp x25, #-1, #15, hs
1170f4a2713aSLionel Sambuc        ccmp x3, #32, #0, ge
1171f4a2713aSLionel Sambuc        ccmp x19, #5, #-1, lt
1172f4a2713aSLionel Sambuc        ccmp x20, #7, #16, hs
1173f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
1174f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmp sp, #4, #2, ne
1175f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
1176*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31]
1177f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmp x25, #-1, #15, hs
1178f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
1179*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31]
1180f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmp x3, #32, #0, ge
1181f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
1182*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15]
1183f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmp x19, #5, #-1, lt
1184f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
1185*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15]
1186f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmp x20, #7, #16, hs
1187f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
1188f4a2713aSLionel Sambuc
1189f4a2713aSLionel Sambuc        ccmn wsp, #4, #2, ne
1190f4a2713aSLionel Sambuc        ccmn w25, #-1, #15, hs
1191f4a2713aSLionel Sambuc        ccmn w3, #32, #0, ge
1192f4a2713aSLionel Sambuc        ccmn w19, #5, #-1, lt
1193f4a2713aSLionel Sambuc        ccmn w20, #7, #16, hs
1194f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
1195f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmn wsp, #4, #2, ne
1196f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
1197*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31]
1198f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmn w25, #-1, #15, hs
1199f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
1200*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31]
1201f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmn w3, #32, #0, ge
1202f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
1203*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15]
1204f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmn w19, #5, #-1, lt
1205f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
1206*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15]
1207f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmn w20, #7, #16, hs
1208f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
1209f4a2713aSLionel Sambuc
1210f4a2713aSLionel Sambuc        ccmn sp, #4, #2, ne
1211f4a2713aSLionel Sambuc        ccmn x25, #-1, #15, hs
1212f4a2713aSLionel Sambuc        ccmn x3, #32, #0, ge
1213f4a2713aSLionel Sambuc        ccmn x19, #5, #-1, lt
1214f4a2713aSLionel Sambuc        ccmn x20, #7, #16, hs
1215f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
1216f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmn sp, #4, #2, ne
1217f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
1218*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31]
1219f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmn x25, #-1, #15, hs
1220f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
1221*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31]
1222f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmn x3, #32, #0, ge
1223f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
1224*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15]
1225f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmn x19, #5, #-1, lt
1226f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
1227*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15]
1228f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmn x20, #7, #16, hs
1229f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
1230f4a2713aSLionel Sambuc
1231f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1232f4a2713aSLionel Sambuc// Conditional compare (register)
1233f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1234f4a2713aSLionel Sambuc
1235f4a2713aSLionel Sambuc        ccmp wsp, w4, #2, ne
1236f4a2713aSLionel Sambuc        ccmp w3, wsp, #0, ge
1237f4a2713aSLionel Sambuc        ccmp w19, w5, #-1, lt
1238f4a2713aSLionel Sambuc        ccmp w20, w7, #16, hs
1239f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
1240f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmp wsp, w4, #2, ne
1241f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
1242*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31]
1243f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmp w3, wsp, #0, ge
1244f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
1245*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15]
1246f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmp w19, w5, #-1, lt
1247f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
1248*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15]
1249f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmp w20, w7, #16, hs
1250f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
1251f4a2713aSLionel Sambuc
1252f4a2713aSLionel Sambuc        ccmp sp, x4, #2, ne
1253f4a2713aSLionel Sambuc        ccmp x25, sp, #15, hs
1254f4a2713aSLionel Sambuc        ccmp x19, x5, #-1, lt
1255f4a2713aSLionel Sambuc        ccmp x20, x7, #16, hs
1256f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
1257f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmp sp, x4, #2, ne
1258f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
1259*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31]
1260f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmp x25, sp, #15, hs
1261f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
1262*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15]
1263f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmp x19, x5, #-1, lt
1264f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
1265*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15]
1266f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmp x20, x7, #16, hs
1267f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
1268f4a2713aSLionel Sambuc
1269f4a2713aSLionel Sambuc        ccmn wsp, w4, #2, ne
1270f4a2713aSLionel Sambuc        ccmn w25, wsp, #15, hs
1271f4a2713aSLionel Sambuc        ccmn w19, w5, #-1, lt
1272f4a2713aSLionel Sambuc        ccmn w20, w7, #16, hs
1273f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
1274f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmn wsp, w4, #2, ne
1275f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
1276*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31]
1277f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmn w25, wsp, #15, hs
1278f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
1279*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15]
1280f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmn w19, w5, #-1, lt
1281f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
1282*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15]
1283f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmn w20, w7, #16, hs
1284f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
1285f4a2713aSLionel Sambuc
1286f4a2713aSLionel Sambuc        ccmn sp, x4, #2, ne
1287f4a2713aSLionel Sambuc        ccmn x25, sp, #15, hs
1288f4a2713aSLionel Sambuc        ccmn x19, x5, #-1, lt
1289f4a2713aSLionel Sambuc        ccmn x20, x7, #16, hs
1290f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
1291f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmn sp, x4, #2, ne
1292f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
1293*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31]
1294f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmn x25, sp, #15, hs
1295f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
1296*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15]
1297f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmn x19, x5, #-1, lt
1298f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
1299*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15]
1300f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ccmn x20, x7, #16, hs
1301f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
1302f4a2713aSLionel Sambuc
1303f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1304f4a2713aSLionel Sambuc// Conditional select
1305f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1306f4a2713aSLionel Sambuc
1307f4a2713aSLionel Sambuc        csel w4, wsp, w9, eq
1308f4a2713aSLionel Sambuc        csel wsp, w2, w3, ne
1309f4a2713aSLionel Sambuc        csel w10, w11, wsp, ge
1310f4a2713aSLionel Sambuc        csel w1, w2, w3, #3
1311f4a2713aSLionel Sambuc        csel x4, sp, x9, eq
1312f4a2713aSLionel Sambuc        csel sp, x2, x3, ne
1313f4a2713aSLionel Sambuc        csel x10, x11, sp, ge
1314f4a2713aSLionel Sambuc        csel x1, x2, x3, #3
1315f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
1316f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        csel w4, wsp, w9, eq
1317f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
1318f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1319f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        csel wsp, w2, w3, ne
1320f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
1321f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1322f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        csel w10, w11, wsp, ge
1323f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
1324f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected AArch64 condition code
1325f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        csel w1, w2, w3, #3
1326f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
1327f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1328f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        csel x4, sp, x9, eq
1329f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
1330f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1331f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        csel sp, x2, x3, ne
1332f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
1333f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1334f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        csel x10, x11, sp, ge
1335f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
1336f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected AArch64 condition code
1337f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        csel x1, x2, x3, #3
1338f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
1339f4a2713aSLionel Sambuc
1340f4a2713aSLionel Sambuc        csinc w20, w21, wsp, mi
1341f4a2713aSLionel Sambuc        csinc sp, x30, x29, eq
1342f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
1343f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        csinc w20, w21, wsp, mi
1344f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                        ^
1345f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1346f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        csinc sp, x30, x29, eq
1347f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
1348f4a2713aSLionel Sambuc
1349f4a2713aSLionel Sambuc        csinv w20, wsp, wsp, mi
1350f4a2713aSLionel Sambuc        csinv sp, x30, x29, le
1351f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
1352f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        csinv w20, wsp, wsp, mi
1353f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                   ^
1354f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1355f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        csinv sp, x30, x29, le
1356f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
1357f4a2713aSLionel Sambuc
1358f4a2713aSLionel Sambuc        csneg w20, w21, wsp, mi
1359f4a2713aSLionel Sambuc        csneg x0, sp, x29, le
1360f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
1361f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        csneg w20, w21, wsp, mi
1362f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                        ^
1363f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1364f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        csneg x0, sp, x29, le
1365f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
1366f4a2713aSLionel Sambuc
1367f4a2713aSLionel Sambuc        cset wsp, lt
1368f4a2713aSLionel Sambuc        csetm sp, ge
1369*0a6a1f1dSLionel Sambuc        cset w1, al
1370*0a6a1f1dSLionel Sambuc        csetm x6, nv
1371f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
1372f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        cset wsp, lt
1373f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
1374f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1375f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        csetm sp, ge
1376f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
1377*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: condition codes AL and NV are invalid for this instruction
1378*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:        cset w1, al
1379*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:                   ^
1380*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: condition codes AL and NV are invalid for this instruction
1381*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:        csetm x6, nv
1382*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:                    ^
1383f4a2713aSLionel Sambuc
1384f4a2713aSLionel Sambuc        cinc w3, wsp, ne
1385f4a2713aSLionel Sambuc        cinc sp, x9, eq
1386*0a6a1f1dSLionel Sambuc        cinc x2, x0, nv
1387f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
1388f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        cinc w3, wsp, ne
1389f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
1390f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1391f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        cinc sp, x9, eq
1392f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
1393*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: condition codes AL and NV are invalid for this instruction
1394*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:        cinc x2, x0, nv
1395*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
1396f4a2713aSLionel Sambuc
1397f4a2713aSLionel Sambuc        cinv w3, wsp, ne
1398f4a2713aSLionel Sambuc        cinv sp, x9, eq
1399*0a6a1f1dSLionel Sambuc        cinv w8, x7, nv
1400f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
1401f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        cinv w3, wsp, ne
1402f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
1403f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1404f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        cinv sp, x9, eq
1405f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
1406*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: condition codes AL and NV are invalid for this instruction
1407*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:        cinv w8, x7, nv
1408*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
1409f4a2713aSLionel Sambuc
1410f4a2713aSLionel Sambuc        cneg w3, wsp, ne
1411f4a2713aSLionel Sambuc        cneg sp, x9, eq
1412*0a6a1f1dSLionel Sambuc        cneg x4, x5, al
1413f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
1414f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        cneg w3, wsp, ne
1415f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
1416f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1417f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        cneg sp, x9, eq
1418f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
1419*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: condition codes AL and NV are invalid for this instruction
1420*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:        cneg x4, x5, al
1421*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
1422f4a2713aSLionel Sambuc
1423f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1424f4a2713aSLionel Sambuc// Data Processing (1 source)
1425f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1426f4a2713aSLionel Sambuc        rbit x23, w2
1427f4a2713aSLionel Sambuc//CHECK-ERROR: error: invalid operand for instruction
1428f4a2713aSLionel Sambuc//CHECK-ERROR-NEXT:     rbit x23, w2
1429f4a2713aSLionel Sambuc
1430f4a2713aSLionel Sambuc        cls sp, x2
1431f4a2713aSLionel Sambuc//CHECK-ERROR: error: invalid operand for instruction
1432f4a2713aSLionel Sambuc//CHECK-ERROR-NEXT:     cls sp, x2
1433f4a2713aSLionel Sambuc
1434f4a2713aSLionel Sambuc        clz wsp, w3
1435f4a2713aSLionel Sambuc//CHECK-ERROR: error: invalid operand for instruction
1436f4a2713aSLionel Sambuc//CHECK-ERROR-NEXT:     clz wsp, w3
1437f4a2713aSLionel Sambuc
1438f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1439f4a2713aSLionel Sambuc// Data Processing (2 sources)
1440f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1441f4a2713aSLionel Sambuc        udiv x23, w2, x18
1442f4a2713aSLionel Sambuc//CHECK-ERROR: error: invalid operand for instruction
1443f4a2713aSLionel Sambuc//CHECK-ERROR-NEXT:     udiv x23, w2, x18
1444f4a2713aSLionel Sambuc
1445f4a2713aSLionel Sambuc        lsl sp, x2, x4
1446f4a2713aSLionel Sambuc//CHECK-ERROR: error: invalid operand for instruction
1447f4a2713aSLionel Sambuc//CHECK-ERROR-NEXT:     lsl sp, x2, x4
1448f4a2713aSLionel Sambuc
1449f4a2713aSLionel Sambuc        asr wsp, w3, w9
1450f4a2713aSLionel Sambuc//CHECK-ERROR: error: invalid operand for instruction
1451f4a2713aSLionel Sambuc//CHECK-ERROR-NEXT:     asr wsp, w3, w9
1452f4a2713aSLionel Sambuc
1453f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1454f4a2713aSLionel Sambuc// Data Processing (3 sources)
1455f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1456f4a2713aSLionel Sambuc
1457f4a2713aSLionel Sambuc        madd sp, x3, x9, x10
1458f4a2713aSLionel Sambuc//CHECK-ERROR: error: invalid operand for instruction
1459f4a2713aSLionel Sambuc//CHECK-ERROR-NEXT:     madd sp, x3, x9, x10
1460f4a2713aSLionel Sambuc
1461f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1462f4a2713aSLionel Sambuc// Exception generation
1463f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1464f4a2713aSLionel Sambuc        svc #-1
1465f4a2713aSLionel Sambuc        hlt #65536
1466f4a2713aSLionel Sambuc        dcps4 #43
1467f4a2713aSLionel Sambuc        dcps4
1468*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 65535]
1469f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         svc #-1
1470f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
1471*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 65535]
1472f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         hlt #65536
1473f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
1474*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{invalid instruction|unrecognized instruction mnemonic}}
1475f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         dcps4 #43
1476f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ^
1477*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{invalid instruction|unrecognized instruction mnemonic}}
1478f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         dcps4
1479f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ^
1480f4a2713aSLionel Sambuc
1481f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1482f4a2713aSLionel Sambuc// Extract (immediate)
1483f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1484f4a2713aSLionel Sambuc
1485f4a2713aSLionel Sambuc        extr w2, w20, w30, #-1
1486f4a2713aSLionel Sambuc        extr w9, w19, w20, #32
1487*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31]
1488f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         extr w2, w20, w30, #-1
1489f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                            ^
1490*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31]
1491f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         extr w9, w19, w20, #32
1492f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                            ^
1493f4a2713aSLionel Sambuc
1494f4a2713aSLionel Sambuc        extr x10, x15, x20, #-1
1495f4a2713aSLionel Sambuc        extr x20, x25, x30, #64
1496*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 63]
1497f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         extr x10, x15, x20, #-1
1498f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                             ^
1499*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 63]
1500f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         extr x20, x25, x30, #64
1501f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                             ^
1502f4a2713aSLionel Sambuc
1503f4a2713aSLionel Sambuc        ror w9, w10, #32
1504f4a2713aSLionel Sambuc        ror x10, x11, #64
1505*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31]
1506f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ror w9, w10, #32
1507f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
1508*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 63]
1509f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ror x10, x11, #64
1510f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
1511f4a2713aSLionel Sambuc
1512f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1513f4a2713aSLionel Sambuc// Floating-point compare
1514f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1515f4a2713aSLionel Sambuc
1516f4a2713aSLionel Sambuc        fcmp s3, d2
1517*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64: error: expected floating-point constant #0.0
1518*0a6a1f1dSLionel Sambuc// CHECK-ERROR-ARM64: error: invalid operand for instruction
1519f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         fcmp s3, d2
1520f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
1521f4a2713aSLionel Sambuc
1522f4a2713aSLionel Sambuc        fcmp s9, #-0.0
1523f4a2713aSLionel Sambuc        fcmp d3, #-0.0
1524f4a2713aSLionel Sambuc        fcmp s1, #1.0
1525f4a2713aSLionel Sambuc        fcmpe s30, #-0.0
1526f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected floating-point constant #0.0
1527f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         fcmp s9, #-0.0
1528f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
1529f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected floating-point constant #0.0
1530f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         fcmp d3, #-0.0
1531f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
1532f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected floating-point constant #0.0
1533f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         fcmp s1, #1.0
1534f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
1535f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected floating-point constant #0.0
1536f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         fcmpe s30, #-0.0
1537f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                    ^
1538f4a2713aSLionel Sambuc
1539f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1540f4a2713aSLionel Sambuc// Floating-point conditional compare
1541f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1542f4a2713aSLionel Sambuc
1543f4a2713aSLionel Sambuc        fccmp s19, s5, #-1, lt
1544f4a2713aSLionel Sambuc        fccmp s20, s7, #16, hs
1545*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15]
1546f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        fccmp s19, s5, #-1, lt
1547f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
1548*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15]
1549f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        fccmp s20, s7, #16, hs
1550f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
1551f4a2713aSLionel Sambuc
1552f4a2713aSLionel Sambuc        fccmp d19, d5, #-1, lt
1553f4a2713aSLionel Sambuc        fccmp d20, d7, #16, hs
1554*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15]
1555f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        fccmp d19, d5, #-1, lt
1556f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
1557*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15]
1558f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        fccmp d20, d7, #16, hs
1559f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
1560f4a2713aSLionel Sambuc
1561f4a2713aSLionel Sambuc        fccmpe s19, s5, #-1, lt
1562f4a2713aSLionel Sambuc        fccmpe s20, s7, #16, hs
1563*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15]
1564f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        fccmpe s19, s5, #-1, lt
1565f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
1566*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15]
1567f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        fccmpe s20, s7, #16, hs
1568f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
1569f4a2713aSLionel Sambuc
1570f4a2713aSLionel Sambuc        fccmpe d19, d5, #-1, lt
1571f4a2713aSLionel Sambuc        fccmpe d20, d7, #16, hs
1572*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15]
1573f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        fccmpe d19, d5, #-1, lt
1574f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
1575*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15]
1576f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        fccmpe d20, d7, #16, hs
1577f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
1578f4a2713aSLionel Sambuc
1579f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1580f4a2713aSLionel Sambuc// Floating-point conditional compare
1581f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1582f4a2713aSLionel Sambuc
1583f4a2713aSLionel Sambuc        fcsel q3, q20, q9, pl
1584f4a2713aSLionel Sambuc        fcsel h9, h10, h11, mi
1585f4a2713aSLionel Sambuc        fcsel b9, b10, b11, mi
1586f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
1587f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         fcsel q3, q20, q9, pl
1588f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:               ^
1589f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1590f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         fcsel h9, h10, h11, mi
1591f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:               ^
1592f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1593f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         fcsel b9, b10, b11, mi
1594f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:               ^
1595f4a2713aSLionel Sambuc
1596f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1597f4a2713aSLionel Sambuc// Floating-point data-processing (1 source)
1598f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1599f4a2713aSLionel Sambuc
1600f4a2713aSLionel Sambuc        fmov d0, s3
1601f4a2713aSLionel Sambuc        fcvt d0, d1
1602f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected compatible register or floating-point constant
1603f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:           fmov d0, s3
1604f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                    ^
1605f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1606f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:           fcvt d0, d1
1607f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                    ^
1608f4a2713aSLionel Sambuc
1609f4a2713aSLionel Sambuc
1610f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1611f4a2713aSLionel Sambuc// Floating-point data-processing (2 sources)
1612f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1613f4a2713aSLionel Sambuc
1614f4a2713aSLionel Sambuc        fadd s0, d3, d7
1615f4a2713aSLionel Sambuc        fmaxnm d3, s19, d12
1616f4a2713aSLionel Sambuc        fnmul d1, d9, s18
1617f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
1618f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:           fadd s0, d3, d7
1619f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: ^
1620f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1621f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:           fmaxnm d3, s19, d12
1622f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: ^
1623f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1624f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:           fnmul d1, d9, s18
1625f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: ^
1626f4a2713aSLionel Sambuc
1627f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1628f4a2713aSLionel Sambuc// Floating-point data-processing (3 sources)
1629f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1630f4a2713aSLionel Sambuc
1631f4a2713aSLionel Sambuc        fmadd b3, b4, b5, b6
1632f4a2713aSLionel Sambuc        fmsub h1, h2, h3, h4
1633f4a2713aSLionel Sambuc        fnmadd q3, q5, q6, q7
1634f4a2713aSLionel Sambuc        fnmsub s2, s4, d5, h9
1635f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
1636f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         fmadd b3, b4, b5, b6
1637f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:               ^
1638f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1639f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         fmsub h1, h2, h3, h4
1640f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:               ^
1641f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1642f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         fnmadd q3, q5, q6, q7
1643f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                ^
1644f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1645f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         fnmsub s2, s4, d5, h9
1646f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                ^
1647f4a2713aSLionel Sambuc
1648f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1649f4a2713aSLionel Sambuc// Floating-point conditional compare
1650f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1651f4a2713aSLionel Sambuc
1652f4a2713aSLionel Sambuc        fcvtzs w13, s31, #0
1653f4a2713aSLionel Sambuc        fcvtzs w19, s20, #33
1654f4a2713aSLionel Sambuc        fcvtzs wsp, s19, #14
1655*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [1, 32]
1656f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        fcvtzs w13, s31, #0
1657f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
1658*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [1, 32]
1659f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        fcvtzs w19, s20, #33
1660f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
1661f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1662f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        fcvtzs wsp, s19, #14
1663f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:               ^
1664f4a2713aSLionel Sambuc
1665f4a2713aSLionel Sambuc        fcvtzs x13, s31, #0
1666f4a2713aSLionel Sambuc        fcvtzs x19, s20, #65
1667f4a2713aSLionel Sambuc        fcvtzs sp, s19, #14
1668*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [1, 64]
1669f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        fcvtzs x13, s31, #0
1670f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
1671*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [1, 64]
1672f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        fcvtzs x19, s20, #65
1673f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
1674f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1675f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        fcvtzs sp, s19, #14
1676f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:               ^
1677f4a2713aSLionel Sambuc
1678f4a2713aSLionel Sambuc        fcvtzu w13, s31, #0
1679f4a2713aSLionel Sambuc        fcvtzu w19, s20, #33
1680f4a2713aSLionel Sambuc        fcvtzu wsp, s19, #14
1681*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [1, 32]
1682f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        fcvtzu w13, s31, #0
1683f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
1684*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [1, 32]
1685f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        fcvtzu w19, s20, #33
1686f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
1687f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1688f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        fcvtzu wsp, s19, #14
1689f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:               ^
1690f4a2713aSLionel Sambuc
1691f4a2713aSLionel Sambuc        fcvtzu x13, s31, #0
1692f4a2713aSLionel Sambuc        fcvtzu x19, s20, #65
1693f4a2713aSLionel Sambuc        fcvtzu sp, s19, #14
1694*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [1, 64]
1695f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        fcvtzu x13, s31, #0
1696f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
1697*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [1, 64]
1698f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        fcvtzu x19, s20, #65
1699f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
1700f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1701f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        fcvtzu sp, s19, #14
1702f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:               ^
1703f4a2713aSLionel Sambuc
1704f4a2713aSLionel Sambuc        scvtf w13, s31, #0
1705f4a2713aSLionel Sambuc        scvtf w19, s20, #33
1706f4a2713aSLionel Sambuc        scvtf wsp, s19, #14
1707f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1708f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        scvtf w13, s31, #0
1709f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
1710f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1711f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        scvtf w19, s20, #33
1712f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
1713f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1714f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        scvtf wsp, s19, #14
1715f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
1716f4a2713aSLionel Sambuc
1717f4a2713aSLionel Sambuc        scvtf x13, s31, #0
1718f4a2713aSLionel Sambuc        scvtf x19, s20, #65
1719f4a2713aSLionel Sambuc        scvtf sp, s19, #14
1720f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1721f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        scvtf x13, s31, #0
1722f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
1723f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1724f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        scvtf x19, s20, #65
1725f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
1726f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1727f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        scvtf sp, s19, #14
1728f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
1729f4a2713aSLionel Sambuc
1730f4a2713aSLionel Sambuc        ucvtf w13, s31, #0
1731f4a2713aSLionel Sambuc        ucvtf w19, s20, #33
1732f4a2713aSLionel Sambuc        ucvtf wsp, s19, #14
1733f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1734f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ucvtf w13, s31, #0
1735f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
1736f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1737f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ucvtf w19, s20, #33
1738f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
1739f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1740f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ucvtf wsp, s19, #14
1741f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
1742f4a2713aSLionel Sambuc
1743f4a2713aSLionel Sambuc        ucvtf x13, s31, #0
1744f4a2713aSLionel Sambuc        ucvtf x19, s20, #65
1745f4a2713aSLionel Sambuc        ucvtf sp, s19, #14
1746f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1747f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ucvtf x13, s31, #0
1748f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
1749f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1750f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ucvtf x19, s20, #65
1751f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
1752f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1753f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ucvtf sp, s19, #14
1754f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
1755f4a2713aSLionel Sambuc
1756f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1757f4a2713aSLionel Sambuc// Floating-point immediate
1758f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1759f4a2713aSLionel Sambuc        ;; Exponent too large
1760f4a2713aSLionel Sambuc        fmov d3, #0.0625
1761f4a2713aSLionel Sambuc        fmov s2, #32.0
1762f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected compatible register or floating-point constant
1763f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:           fmov d3, #0.0625
1764f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                    ^
1765f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected compatible register or floating-point constant
1766f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:           fmov s2, #32.0
1767f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                    ^
1768f4a2713aSLionel Sambuc
1769f4a2713aSLionel Sambuc        ;; Fraction too precise
1770f4a2713aSLionel Sambuc        fmov s9, #1.03125
1771f4a2713aSLionel Sambuc        fmov s28, #1.96875
1772f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected compatible register or floating-point constant
1773f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:           fmov s9, #1.03125
1774f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                    ^
1775f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected compatible register or floating-point constant
1776f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:           fmov s28, #1.96875
1777f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
1778f4a2713aSLionel Sambuc
1779f4a2713aSLionel Sambuc        ;; No particular reason, but a striking omission
1780f4a2713aSLionel Sambuc        fmov d0, #0.0
1781*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64: error: expected compatible register or floating-point constant
1782*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT:           fmov d0, #0.0
1783*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT:                    ^
1784f4a2713aSLionel Sambuc
1785f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1786f4a2713aSLionel Sambuc// Floating-point <-> integer conversion
1787f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1788f4a2713aSLionel Sambuc
1789f4a2713aSLionel Sambuc        fmov x3, v0.d[0]
1790f4a2713aSLionel Sambuc        fmov v29.1d[1], x2
1791f4a2713aSLionel Sambuc        fmov x7, v0.d[2]
1792f4a2713aSLionel Sambuc        fcvtns sp, s5
1793f4a2713aSLionel Sambuc        scvtf s6, wsp
1794f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected lane specifier '[1]'
1795f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         fmov x3, v0.d[0]
1796f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
1797*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT: error: lane number incompatible with layout
1798*0a6a1f1dSLionel Sambuc// CHECK-ERROR-ARM64-NEXT: error: invalid operand for instruction
1799f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: fmov v29.1d[1], x2
1800f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
1801*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT: error: lane number incompatible with layout
1802*0a6a1f1dSLionel Sambuc// CHECK-ERROR-ARM64-NEXT: error: expected lane specifier '[1]'
1803f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: fmov x7, v0.d[2]
1804f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:               ^
1805f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1806f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         fcvtns sp, s5
1807f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                ^
1808f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1809f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         scvtf s6, wsp
1810f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                   ^
1811f4a2713aSLionel Sambuc
1812f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1813f4a2713aSLionel Sambuc// Load-register (literal)
1814f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1815f4a2713aSLionel Sambuc
1816f4a2713aSLionel Sambuc        ldr sp, some_label
1817f4a2713aSLionel Sambuc        ldrsw w3, somewhere
1818f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
1819f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr sp, some_label
1820f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
1821f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
1822f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrsw w3, somewhere
1823f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:               ^
1824f4a2713aSLionel Sambuc
1825f4a2713aSLionel Sambuc        ldrsw x2, #1048576
1826f4a2713aSLionel Sambuc        ldr q0, #-1048580
1827f4a2713aSLionel Sambuc        ldr x0, #2
1828f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected label or encodable integer pc offset
1829f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrsw x2, #1048576
1830f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                   ^
1831f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected label or encodable integer pc offset
1832f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr q0, #-1048580
1833f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                   ^
1834f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected label or encodable integer pc offset
1835f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr x0, #2
1836f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
1837f4a2713aSLionel Sambuc
1838f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1839f4a2713aSLionel Sambuc// Load/store exclusive
1840f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1841f4a2713aSLionel Sambuc
1842*0a6a1f1dSLionel Sambuc       stxrb w2, w3, [x4, #20]
1843f4a2713aSLionel Sambuc       stlxrh w10, w11, [w2]
1844*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64: error: expected '#0'
1845*0a6a1f1dSLionel Sambuc// CHECK-ERROR-ARM64: error: index must be absent or #0
1846*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:         stxrb w2, w3, [x4, #20]
1847f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
1848f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
1849f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stlxrh w10, w11, [w2]
1850f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
1851f4a2713aSLionel Sambuc
1852f4a2713aSLionel Sambuc       stlxr  x20, w21, [sp]
1853f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
1854f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stlxr  x20, w21, [sp]
1855f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                ^
1856f4a2713aSLionel Sambuc
1857f4a2713aSLionel Sambuc       ldxr   sp, [sp]
1858f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
1859f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldxr   sp, [sp]
1860f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                ^
1861f4a2713aSLionel Sambuc
1862f4a2713aSLionel Sambuc       stxp x1, x2, x3, [x4]
1863f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
1864f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stxp x1, x2,  x3, [x4]
1865f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
1866f4a2713aSLionel Sambuc
1867f4a2713aSLionel Sambuc       stlxp w5, x1, w4, [x5]
1868f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
1869f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stlxp w5, x1, w4, [x5]
1870f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
1871f4a2713aSLionel Sambuc
1872f4a2713aSLionel Sambuc       stlxp w17, w6, x7, [x22]
1873f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
1874f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stlxp w17, w6, x7, [x22]
1875f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                        ^
1876f4a2713aSLionel Sambuc
1877f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1878f4a2713aSLionel Sambuc// Load/store (unscaled immediate)
1879f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1880f4a2713aSLionel Sambuc
1881f4a2713aSLionel Sambuc        ldurb w2, [sp, #256]
1882f4a2713aSLionel Sambuc        sturh w17, [x1, #256]
1883f4a2713aSLionel Sambuc        ldursw x20, [x1, #256]
1884f4a2713aSLionel Sambuc        ldur x12, [sp, #256]
1885*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected|index must be an}} integer in range [-256, 255]
1886f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ldurb w2, [sp, #256]
1887f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
1888*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
1889f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sturh w17, [x1, #256]
1890f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                    ^
1891*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
1892f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldursw x20, [x1, #256]
1893f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
1894*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
1895f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldur x12, [sp, #256]
1896f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                   ^
1897f4a2713aSLionel Sambuc
1898f4a2713aSLionel Sambuc        stur h2, [x2, #-257]
1899f4a2713aSLionel Sambuc        stur b2, [x2, #-257]
1900f4a2713aSLionel Sambuc        ldursb x9, [sp, #-257]
1901f4a2713aSLionel Sambuc        ldur w2, [x30, #-257]
1902f4a2713aSLionel Sambuc        stur q9, [x20, #-257]
1903*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected|index must be an}} integer in range [-256, 255]
1904f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stur h2, [x2, #-257]
1905f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
1906*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
1907f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stur b2, [x2, #-257]
1908f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
1909*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
1910f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldursb x9, [sp, #-257]
1911f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                    ^
1912*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
1913f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldur w2, [x30, #-257]
1914f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
1915*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
1916f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stur q9, [x20, #-257]
1917f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
1918f4a2713aSLionel Sambuc
1919f4a2713aSLionel Sambuc        prfum pstl3strm, [xzr]
1920f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
1921f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         prfum pstl3strm, [xzr]
1922f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
1923f4a2713aSLionel Sambuc
1924f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1925f4a2713aSLionel Sambuc// Load-store register (immediate post-indexed)
1926f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
1927f4a2713aSLionel Sambuc        ldr x3, [x4, #25], #0
1928f4a2713aSLionel Sambuc        ldr x4, [x9, #0], #4
1929*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64: error: {{expected symbolic reference or integer|index must be a multiple of 8}} in range [0, 32760]
1930*0a6a1f1dSLionel Sambuc// CHECK-ERROR-ARM64: error: invalid operand for instruction
1931f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr x3, [x4, #25], #0
1932f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
1933*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT: error: invalid operand for instruction
1934*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT:         ldr x4, [x9, #0], #4
1935*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT:                           ^
1936f4a2713aSLionel Sambuc
1937f4a2713aSLionel Sambuc        strb w1, [x19], #256
1938f4a2713aSLionel Sambuc        strb w9, [sp], #-257
1939f4a2713aSLionel Sambuc        strh w1, [x19], #256
1940f4a2713aSLionel Sambuc        strh w9, [sp], #-257
1941f4a2713aSLionel Sambuc        str w1, [x19], #256
1942f4a2713aSLionel Sambuc        str w9, [sp], #-257
1943*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected|index must be an}} integer in range [-256, 255]
1944f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         strb w1, [x19], #256
1945f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
1946*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
1947f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         strb w9, [sp], #-257
1948f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                        ^
1949*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
1950f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         strh w1, [x19], #256
1951f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
1952*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
1953f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         strh w9, [sp], #-257
1954f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                        ^
1955*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
1956f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         str w1, [x19], #256
1957f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                        ^
1958*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
1959f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         str w9, [sp], #-257
1960f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
1961f4a2713aSLionel Sambuc
1962f4a2713aSLionel Sambuc        ldrb w1, [x19], #256
1963f4a2713aSLionel Sambuc        ldrb w9, [sp], #-257
1964f4a2713aSLionel Sambuc        ldrh w1, [x19], #256
1965f4a2713aSLionel Sambuc        ldrh w9, [sp], #-257
1966f4a2713aSLionel Sambuc        ldr w1, [x19], #256
1967f4a2713aSLionel Sambuc        ldr w9, [sp], #-257
1968*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected|index must be an}} integer in range [-256, 255]
1969f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrb w1, [x19], #256
1970f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
1971*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
1972f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrb w9, [sp], #-257
1973f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                        ^
1974*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
1975f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrh w1, [x19], #256
1976f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
1977*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
1978f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrh w9, [sp], #-257
1979f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                        ^
1980*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
1981f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr w1, [x19], #256
1982f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                        ^
1983*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
1984f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr w9, [sp], #-257
1985f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
1986f4a2713aSLionel Sambuc
1987f4a2713aSLionel Sambuc        ldrsb x2, [x3], #256
1988f4a2713aSLionel Sambuc        ldrsb x22, [x13], #-257
1989f4a2713aSLionel Sambuc        ldrsh x2, [x3], #256
1990f4a2713aSLionel Sambuc        ldrsh x22, [x13], #-257
1991f4a2713aSLionel Sambuc        ldrsw x2, [x3], #256
1992f4a2713aSLionel Sambuc        ldrsw x22, [x13], #-257
1993*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected|index must be an}} integer in range [-256, 255]
1994f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrsb x2, [x3], #256
1995f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
1996*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
1997f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrsb x22, [x13], #-257
1998f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
1999*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2000f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrsh x2, [x3], #256
2001f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
2002*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2003f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrsh x22, [x13], #-257
2004f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
2005*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2006f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrsw x2, [x3], #256
2007f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
2008*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2009f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrsw x22, [x13], #-257
2010f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
2011f4a2713aSLionel Sambuc
2012f4a2713aSLionel Sambuc        ldrsb w2, [x3], #256
2013f4a2713aSLionel Sambuc        ldrsb w22, [x13], #-257
2014f4a2713aSLionel Sambuc        ldrsh w2, [x3], #256
2015f4a2713aSLionel Sambuc        ldrsh w22, [x13], #-257
2016*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected|index must be an}} integer in range [-256, 255]
2017f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrsb w2, [x3], #256
2018f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
2019*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2020f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrsb w22, [x13], #-257
2021f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
2022*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2023f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrsh w2, [x3], #256
2024f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
2025*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2026f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrsh w22, [x13], #-257
2027f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
2028f4a2713aSLionel Sambuc
2029f4a2713aSLionel Sambuc        str b3, [x3], #256
2030f4a2713aSLionel Sambuc        str b3, [x13], #-257
2031f4a2713aSLionel Sambuc        str h3, [x3], #256
2032f4a2713aSLionel Sambuc        str h3, [x13], #-257
2033f4a2713aSLionel Sambuc        str s3, [x3], #256
2034f4a2713aSLionel Sambuc        str s3, [x13], #-257
2035f4a2713aSLionel Sambuc        str d3, [x3], #256
2036f4a2713aSLionel Sambuc        str d3, [x13], #-257
2037f4a2713aSLionel Sambuc        str q3, [x3], #256
2038f4a2713aSLionel Sambuc        str q3, [x13], #-257
2039*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected|index must be an}} integer in range [-256, 255]
2040f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         str b3, [x3], #256
2041f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
2042*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2043f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         str b3, [x13], #-257
2044f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                        ^
2045*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2046f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         str h3, [x3], #256
2047f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
2048*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2049f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         str h3, [x13], #-257
2050f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                        ^
2051*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2052f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         str s3, [x3], #256
2053f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
2054*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2055f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         str s3, [x13], #-257
2056f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                        ^
2057*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2058f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         str d3, [x3], #256
2059f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
2060*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2061f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         str d3, [x13], #-257
2062f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                        ^
2063*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2064f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         str q3, [x3], #256
2065f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
2066*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2067f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         str q3, [x13], #-257
2068f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                        ^
2069f4a2713aSLionel Sambuc
2070f4a2713aSLionel Sambuc        ldr b3, [x3], #256
2071f4a2713aSLionel Sambuc        ldr b3, [x13], #-257
2072f4a2713aSLionel Sambuc        ldr h3, [x3], #256
2073f4a2713aSLionel Sambuc        ldr h3, [x13], #-257
2074f4a2713aSLionel Sambuc        ldr s3, [x3], #256
2075f4a2713aSLionel Sambuc        ldr s3, [x13], #-257
2076f4a2713aSLionel Sambuc        ldr d3, [x3], #256
2077f4a2713aSLionel Sambuc        ldr d3, [x13], #-257
2078f4a2713aSLionel Sambuc        ldr q3, [x3], #256
2079f4a2713aSLionel Sambuc        ldr q3, [x13], #-257
2080*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected|index must be an}} integer in range [-256, 255]
2081f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr b3, [x3], #256
2082f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
2083*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2084f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr b3, [x13], #-257
2085f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                        ^
2086*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2087f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr h3, [x3], #256
2088f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
2089*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2090f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr h3, [x13], #-257
2091f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                        ^
2092*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2093f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr s3, [x3], #256
2094f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
2095*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2096f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr s3, [x13], #-257
2097f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                        ^
2098*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2099f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr d3, [x3], #256
2100f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
2101*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2102f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr d3, [x13], #-257
2103f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                        ^
2104*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2105f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr q3, [x3], #256
2106f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
2107*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2108f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr q3, [x13], #-257
2109f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                        ^
2110f4a2713aSLionel Sambuc
2111f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
2112f4a2713aSLionel Sambuc// Load-store register (immediate pre-indexed)
2113f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
2114f4a2713aSLionel Sambuc
2115f4a2713aSLionel Sambuc        ldr x3, [x4]!
2116f4a2713aSLionel Sambuc// CHECK-ERROR: error:
2117f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr x3, [x4]!
2118f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
2119f4a2713aSLionel Sambuc
2120f4a2713aSLionel Sambuc        strb w1, [x19, #256]!
2121f4a2713aSLionel Sambuc        strb w9, [sp, #-257]!
2122f4a2713aSLionel Sambuc        strh w1, [x19, #256]!
2123f4a2713aSLionel Sambuc        strh w9, [sp, #-257]!
2124f4a2713aSLionel Sambuc        str w1, [x19, #256]!
2125f4a2713aSLionel Sambuc        str w9, [sp, #-257]!
2126f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
2127f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         strb w1, [x19, #256]!
2128f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                             ^
2129*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2130f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         strb w9, [sp, #-257]!
2131f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
2132f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
2133f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         strh w1, [x19, #256]!
2134f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                             ^
2135*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2136f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         strh w9, [sp, #-257]!
2137f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
2138f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
2139f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         str w1, [x19, #256]!
2140f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                            ^
2141*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2142f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         str w9, [sp, #-257]!
2143f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
2144f4a2713aSLionel Sambuc
2145f4a2713aSLionel Sambuc        ldrb w1, [x19, #256]!
2146f4a2713aSLionel Sambuc        ldrb w9, [sp, #-257]!
2147f4a2713aSLionel Sambuc        ldrh w1, [x19, #256]!
2148f4a2713aSLionel Sambuc        ldrh w9, [sp, #-257]!
2149f4a2713aSLionel Sambuc        ldr w1, [x19, #256]!
2150f4a2713aSLionel Sambuc        ldr w9, [sp, #-257]!
2151f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
2152f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrb w1, [x19, #256]!
2153f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                             ^
2154*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2155f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrb w9, [sp, #-257]!
2156f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
2157f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
2158f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrh w1, [x19, #256]!
2159f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                             ^
2160*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2161f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrh w9, [sp, #-257]!
2162f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
2163f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
2164f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr w1, [x19, #256]!
2165f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                            ^
2166*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2167f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr w9, [sp, #-257]!
2168f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
2169f4a2713aSLionel Sambuc
2170f4a2713aSLionel Sambuc        ldrsb x2, [x3, #256]!
2171f4a2713aSLionel Sambuc        ldrsb x22, [x13, #-257]!
2172f4a2713aSLionel Sambuc        ldrsh x2, [x3, #256]!
2173f4a2713aSLionel Sambuc        ldrsh x22, [x13, #-257]!
2174f4a2713aSLionel Sambuc        ldrsw x2, [x3, #256]!
2175f4a2713aSLionel Sambuc        ldrsw x22, [x13, #-257]!
2176f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
2177f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrsb x2, [x3, #256]!
2178f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                             ^
2179*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2180f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrsb x22, [x13, #-257]!
2181f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                    ^
2182f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
2183f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrsh x2, [x3, #256]!
2184f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                             ^
2185*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2186f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrsh x22, [x13, #-257]!
2187f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                    ^
2188f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
2189f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrsw x2, [x3, #256]!
2190f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                             ^
2191*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2192f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrsw x22, [x13, #-257]!
2193f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                    ^
2194f4a2713aSLionel Sambuc
2195f4a2713aSLionel Sambuc        ldrsb w2, [x3, #256]!
2196f4a2713aSLionel Sambuc        ldrsb w22, [x13, #-257]!
2197f4a2713aSLionel Sambuc        ldrsh w2, [x3, #256]!
2198f4a2713aSLionel Sambuc        ldrsh w22, [x13, #-257]!
2199f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
2200f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrsb w2, [x3, #256]!
2201f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                             ^
2202*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2203f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrsb w22, [x13, #-257]!
2204f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                    ^
2205f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
2206f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrsh w2, [x3, #256]!
2207f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                             ^
2208*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2209f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrsh w22, [x13, #-257]!
2210f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                    ^
2211f4a2713aSLionel Sambuc
2212f4a2713aSLionel Sambuc        str b3, [x3, #256]!
2213f4a2713aSLionel Sambuc        str b3, [x13, #-257]!
2214f4a2713aSLionel Sambuc        str h3, [x3, #256]!
2215f4a2713aSLionel Sambuc        str h3, [x13, #-257]!
2216f4a2713aSLionel Sambuc        str s3, [x3, #256]!
2217f4a2713aSLionel Sambuc        str s3, [x13, #-257]!
2218f4a2713aSLionel Sambuc        str d3, [x3, #256]!
2219f4a2713aSLionel Sambuc        str d3, [x13, #-257]!
2220f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
2221f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         str b3, [x3, #256]!
2222f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
2223*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2224f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         str b3, [x13, #-257]!
2225f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
2226f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
2227f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         str h3, [x3, #256]!
2228f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
2229*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2230f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         str h3, [x13, #-257]!
2231f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
2232f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
2233f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         str s3, [x3, #256]!
2234f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
2235*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2236f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         str s3, [x13, #-257]!
2237f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
2238f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
2239f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         str d3, [x3, #256]!
2240f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
2241*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2242f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         str d3, [x13, #-257]!
2243f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
2244f4a2713aSLionel Sambuc
2245f4a2713aSLionel Sambuc        ldr b3, [x3, #256]!
2246f4a2713aSLionel Sambuc        ldr b3, [x13, #-257]!
2247f4a2713aSLionel Sambuc        ldr h3, [x3, #256]!
2248f4a2713aSLionel Sambuc        ldr h3, [x13, #-257]!
2249f4a2713aSLionel Sambuc        ldr s3, [x3, #256]!
2250f4a2713aSLionel Sambuc        ldr s3, [x13, #-257]!
2251f4a2713aSLionel Sambuc        ldr d3, [x3, #256]!
2252f4a2713aSLionel Sambuc        ldr d3, [x13, #-257]!
2253f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
2254f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr b3, [x3, #256]!
2255f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
2256*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2257f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr b3, [x13, #-257]!
2258f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
2259f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
2260f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr h3, [x3, #256]!
2261f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
2262*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2263f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr h3, [x13, #-257]!
2264f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
2265f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
2266f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr s3, [x3, #256]!
2267f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
2268*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2269f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr s3, [x13, #-257]!
2270f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
2271f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
2272f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr d3, [x3, #256]!
2273f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
2274*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2275f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr d3, [x13, #-257]!
2276f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
2277f4a2713aSLionel Sambuc
2278f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
2279f4a2713aSLionel Sambuc// Load/store (unprivileged)
2280f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
2281f4a2713aSLionel Sambuc
2282f4a2713aSLionel Sambuc        ldtrb w2, [sp, #256]
2283f4a2713aSLionel Sambuc        sttrh w17, [x1, #256]
2284f4a2713aSLionel Sambuc        ldtrsw x20, [x1, #256]
2285f4a2713aSLionel Sambuc        ldtr x12, [sp, #256]
2286*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected|index must be an}} integer in range [-256, 255]
2287f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ldtrb w2, [sp, #256]
2288f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
2289*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2290f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sttrh w17, [x1, #256]
2291f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                    ^
2292*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2293f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldtrsw x20, [x1, #256]
2294f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
2295*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2296f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldtr x12, [sp, #256]
2297f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                   ^
2298f4a2713aSLionel Sambuc
2299f4a2713aSLionel Sambuc        sttr h2, [x2, #-257]
2300f4a2713aSLionel Sambuc        sttr b2, [x2, #-257]
2301f4a2713aSLionel Sambuc        ldtrsb x9, [sp, #-257]
2302f4a2713aSLionel Sambuc        ldtr w2, [x30, #-257]
2303f4a2713aSLionel Sambuc        sttr q9, [x20, #-257]
2304f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
2305f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sttr h2, [x2, #-257]
2306f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
2307f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
2308f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sttr b2, [x2, #-257]
2309f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
2310*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2311f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldtrsb x9, [sp, #-257]
2312f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                    ^
2313*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2314f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldtr w2, [x30, #-257]
2315f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
2316f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
2317f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sttr q9, [x20, #-257]
2318f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
2319f4a2713aSLionel Sambuc
2320f4a2713aSLionel Sambuc
2321f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
2322f4a2713aSLionel Sambuc// Load/store (unsigned immediate)
2323f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
2324f4a2713aSLionel Sambuc
2325f4a2713aSLionel Sambuc//// Out of range immediates
2326f4a2713aSLionel Sambuc        ldr q0, [x11, #65536]
2327f4a2713aSLionel Sambuc        ldr x0, [sp, #32768]
2328f4a2713aSLionel Sambuc        ldr w0, [x4, #16384]
2329f4a2713aSLionel Sambuc        ldrh w2, [x21, #8192]
2330f4a2713aSLionel Sambuc        ldrb w3, [x12, #4096]
2331*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected|index must be an}} integer in range [-256, 255]
2332f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr q0, [x11, #65536]
2333f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
2334*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2335f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr x0, [sp, #32768]
2336f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
2337*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2338f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr w0, [x4, #16384]
2339f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
2340*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2341f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrh w2, [x21, #8192]
2342f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
2343*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2344f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrb w3, [x12, #4096]
2345f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
2346f4a2713aSLionel Sambuc
2347f4a2713aSLionel Sambuc//// Misaligned addresses
2348f4a2713aSLionel Sambuc        ldr w0, [x0, #2]
2349f4a2713aSLionel Sambuc        ldrsh w2, [x0, #123]
2350f4a2713aSLionel Sambuc        str q0, [x0, #8]
2351*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64: error: too few operands for instruction
2352*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT:         ldr w0, [x0, #2]
2353*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT:                 ^
2354*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT: error: too few operands for instruction
2355*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT:         ldrsh w2, [x0, #123]
2356*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT:                   ^
2357*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT: error: too few operands for instruction
2358*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT:         str q0, [x0, #8]
2359*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT:                 ^
2360f4a2713aSLionel Sambuc
2361f4a2713aSLionel Sambuc//// 32-bit addresses
2362f4a2713aSLionel Sambuc        ldr w0, [w20]
2363f4a2713aSLionel Sambuc        ldrsh x3, [wsp]
2364f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
2365f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr w0, [w20]
2366f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
2367f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
2368f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrsh x3, [wsp]
2369f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                    ^
2370f4a2713aSLionel Sambuc
2371f4a2713aSLionel Sambuc//// Store things
2372f4a2713aSLionel Sambuc        strb w0, [wsp]
2373f4a2713aSLionel Sambuc        strh w31, [x23, #1]
2374f4a2713aSLionel Sambuc        str x5, [x22, #12]
2375f4a2713aSLionel Sambuc        str w7, [x12, #16384]
2376f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
2377f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: strb w0, [wsp]
2378f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:           ^
2379*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64: error: invalid operand for instruction
2380*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT:         strh w31, [x23, #1]
2381*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT:              ^
2382*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT: error: too few operands for instruction
2383*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT:         str x5, [x22, #12]
2384*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT:                 ^
2385*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255]
2386f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         str w7, [x12, #16384]
2387f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
2388f4a2713aSLionel Sambuc
2389f4a2713aSLionel Sambuc//// Bad PRFMs
2390f4a2713aSLionel Sambuc        prfm #-1, [sp]
2391f4a2713aSLionel Sambuc        prfm #32, [sp, #8]
2392f4a2713aSLionel Sambuc        prfm pldl1strm, [w3, #8]
2393f4a2713aSLionel Sambuc        prfm wibble, [sp]
2394*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64: error: Invalid immediate for instruction
2395*0a6a1f1dSLionel Sambuc// CHECK-ERROR-ARM64: error: prefetch operand out of range, [0,31] expected
2396f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        prfm #-1, [sp]
2397f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
2398*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT: error: Invalid immediate for instruction
2399*0a6a1f1dSLionel Sambuc// CHECK-ERROR-ARM64-NEXT: error: prefetch operand out of range, [0,31] expected
2400f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        prfm #32, [sp, #8]
2401f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
2402f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
2403f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        prfm pldl1strm, [w3, #8]
2404f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
2405*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT: error: operand specifier not recognised
2406*0a6a1f1dSLionel Sambuc// CHECK-ERROR-ARM64-NEXT: error: pre-fetch hint expected
2407f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        prfm wibble, [sp]
2408f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
2409f4a2713aSLionel Sambuc
2410f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
2411f4a2713aSLionel Sambuc// Load/store register (register offset)
2412f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
2413f4a2713aSLionel Sambuc
2414f4a2713aSLionel Sambuc        ldr w3, [xzr, x3]
2415f4a2713aSLionel Sambuc        ldr w4, [x0, x4, lsl]
2416f4a2713aSLionel Sambuc        ldr w9, [x5, x5, uxtw]
2417f4a2713aSLionel Sambuc        ldr w10, [x6, x9, sxtw #2]
2418f4a2713aSLionel Sambuc        ldr w11, [x7, w2, lsl #2]
2419f4a2713aSLionel Sambuc        ldr w12, [x8, w1, sxtx]
2420f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
2421f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        ldr w3, [xzr, x3]
2422f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
2423f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected #imm after shift specifier
2424f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr w4, [x0, x4, lsl]
2425f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                             ^
2426f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'lsl' or 'sxtx' with optional shift of #0 or #2
2427f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr w9, [x5, x5, uxtw]
2428f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                          ^
2429f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'lsl' or 'sxtx' with optional shift of #0 or #2
2430f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr w10, [x6, x9, sxtw #2]
2431f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
2432f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'uxtw' or 'sxtw' with optional shift of #0 or #2
2433f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr w11, [x7, w2, lsl #2]
2434f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
2435f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'uxtw' or 'sxtw' with optional shift of #0 or #2
2436f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr w12, [x8, w1, sxtx]
2437f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
2438f4a2713aSLionel Sambuc
2439f4a2713aSLionel Sambuc        ldrsb w9, [x4, x2, lsl #-1]
2440f4a2713aSLionel Sambuc        strb w9, [x4, x2, lsl #1]
2441f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
2442f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrsb w9, [x4, x2, lsl #-1]
2443f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                                 ^
2444f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'lsl' or 'sxtx' with optional shift of #0
2445f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         strb w9, [x4, x2, lsl #1]
2446f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
2447f4a2713aSLionel Sambuc
2448f4a2713aSLionel Sambuc        ldrsh w9, [x4, x2, lsl #-1]
2449f4a2713aSLionel Sambuc        ldr h13, [x4, w2, uxtw #2]
2450f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
2451f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrsh w9, [x4, x2, lsl #-1]
2452f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                                 ^
2453f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'uxtw' or 'sxtw' with optional shift of #0 or #1
2454f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr h13, [x4, w2, uxtw #2]
2455f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
2456f4a2713aSLionel Sambuc
2457f4a2713aSLionel Sambuc        str w9, [x5, w9, sxtw #-1]
2458f4a2713aSLionel Sambuc        str s3, [sp, w9, uxtw #1]
2459f4a2713aSLionel Sambuc        ldrsw x9, [x15, x4, sxtx #3]
2460f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
2461f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         str w9, [x5, w9, sxtw #-1]
2462f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                                ^
2463f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'uxtw' or 'sxtw' with optional shift of #0 or #2
2464f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         str s3, [sp, w9, uxtw #1]
2465f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                          ^
2466f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'lsl' or 'sxtx' with optional shift of #0 or #2
2467f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldrsw x9, [x15, x4, sxtx #3]
2468f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                             ^
2469f4a2713aSLionel Sambuc
2470f4a2713aSLionel Sambuc        str xzr, [x5, x9, sxtx #-1]
2471f4a2713aSLionel Sambuc        prfm pldl3keep, [sp, x20, lsl #2]
2472f4a2713aSLionel Sambuc        ldr d3, [x20, wzr, uxtw #4]
2473f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
2474f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         str xzr, [x5, x9, sxtx #-1]
2475f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                                 ^
2476f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'lsl' or 'sxtx' with optional shift of #0 or #3
2477f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         prfm pldl3keep, [sp, x20, lsl #2]
2478f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
2479f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'uxtw' or 'sxtw' with optional shift of #0 or #3
2480f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr d3, [x20, wzr, uxtw #4]
2481f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
2482f4a2713aSLionel Sambuc
2483f4a2713aSLionel Sambuc        ldr q5, [sp, x2, lsl #-1]
2484f4a2713aSLionel Sambuc        ldr q10, [x20, w4, uxtw #2]
2485f4a2713aSLionel Sambuc        str q21, [x20, w4, uxtw #5]
2486f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected integer shift amount
2487f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr q5, [sp, x2, lsl #-1]
2488f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                               ^
2489*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT: error: expected 'lsl' or 'sxtw' with optional shift of #0 or #4
2490*0a6a1f1dSLionel Sambuc// CHECK-ERROR-ARM64-NEXT: error: expected 'uxtw' or 'sxtw' with optional shift of #0 or #4
2491f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldr q10, [x20, w4, uxtw #2]
2492f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
2493*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT: error: expected 'lsl' or 'sxtw' with optional shift of #0 or #4
2494*0a6a1f1dSLionel Sambuc// CHECK-ERROR-ARM64-NEXT: error: expected 'uxtw' or 'sxtw' with optional shift of #0 or #4
2495f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         str q21, [x20, w4, uxtw #5]
2496f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
2497f4a2713aSLionel Sambuc
2498f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
2499f4a2713aSLionel Sambuc// Load/store register pair (offset)
2500f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
2501f4a2713aSLionel Sambuc        ldp w3, w2, [x4, #1]
2502f4a2713aSLionel Sambuc        stp w1, w2, [x3, #253]
2503f4a2713aSLionel Sambuc        stp w9, w10, [x5, #256]
2504f4a2713aSLionel Sambuc        ldp w11, w12, [x9, #-260]
2505f4a2713aSLionel Sambuc        stp wsp, w9, [sp]
2506*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2507f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldp w3, w2, [x4, #1]
2508f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                          ^
2509*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2510f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stp w1, w2, [x3, #253]
2511f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
2512*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2513f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stp w9, w10, [x5, #256]
2514f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
2515*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2516f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldp w11, w12, [x9, #-260]
2517f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
2518f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
2519f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stp wsp, w9, [sp]
2520f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
2521f4a2713aSLionel Sambuc
2522f4a2713aSLionel Sambuc        ldpsw x9, x2, [sp, #2]
2523f4a2713aSLionel Sambuc        ldpsw x1, x2, [x10, #256]
2524f4a2713aSLionel Sambuc        ldpsw x3, x4, [x11, #-260]
2525*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2526f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldpsw x9, x2, [sp, #2]
2527f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
2528*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2529f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldpsw x1, x2, [x10, #256]
2530f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
2531*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2532f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldpsw x3, x4, [x11, #-260]
2533f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
2534f4a2713aSLionel Sambuc
2535f4a2713aSLionel Sambuc        ldp x2, x5, [sp, #4]
2536f4a2713aSLionel Sambuc        ldp x5, x6, [x9, #512]
2537f4a2713aSLionel Sambuc        stp x7, x8, [x10, #-520]
2538*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504]
2539f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldp x2, x5, [sp, #4]
2540f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
2541*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504]
2542f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldp x5, x6, [x9, #512]
2543f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
2544*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504]
2545f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stp x7, x8, [x10, #-520]
2546f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
2547f4a2713aSLionel Sambuc
2548f4a2713aSLionel Sambuc        ldp sp, x3, [x10]
2549f4a2713aSLionel Sambuc        stp x3, sp, [x9]
2550f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
2551f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldp sp, x3, [x10]
2552f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
2553f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
2554f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stp x3, sp, [x9]
2555f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
2556f4a2713aSLionel Sambuc
2557f4a2713aSLionel Sambuc        stp s3, s5, [sp, #-2]
2558f4a2713aSLionel Sambuc        ldp s6, s26, [x4, #-260]
2559f4a2713aSLionel Sambuc        stp s13, s19, [x5, #256]
2560*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2561f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stp s3, s5, [sp, #-2]
2562f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
2563*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2564f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldp s6, s26, [x4, #-260]
2565f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
2566*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2567f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stp s13, s19, [x5, #256]
2568f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
2569f4a2713aSLionel Sambuc
2570f4a2713aSLionel Sambuc        ldp d3, d4, [xzr]
2571f4a2713aSLionel Sambuc        ldp d5, d6, [x0, #512]
2572f4a2713aSLionel Sambuc        stp d7, d8, [x0, #-520]
2573f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
2574f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldp d3, d4, [xzr]
2575f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
2576*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504]
2577f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldp d5, d6, [x0, #512]
2578f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
2579*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504]
2580f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stp d7, d8, [x0, #-520]
2581f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
2582f4a2713aSLionel Sambuc
2583f4a2713aSLionel Sambuc        ldp d3, q2, [sp]
2584f4a2713aSLionel Sambuc        ldp q3, q5, [sp, #8]
2585f4a2713aSLionel Sambuc        stp q20, q25, [x5, #1024]
2586f4a2713aSLionel Sambuc        ldp q30, q15, [x23, #-1040]
2587f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
2588f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldp d3, q2, [sp]
2589f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
2590*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 16 in range [-1024, 1008]
2591f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldp q3, q5, [sp, #8]
2592f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
2593*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 16 in range [-1024, 1008]
2594f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stp q20, q25, [x5, #1024]
2595f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
2596*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 16 in range [-1024, 1008]
2597f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldp q30, q15, [x23, #-1040]
2598f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
2599f4a2713aSLionel Sambuc
2600f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
2601f4a2713aSLionel Sambuc// Load/store register pair (post-indexed)
2602f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
2603f4a2713aSLionel Sambuc
2604f4a2713aSLionel Sambuc        ldp w3, w2, [x4], #1
2605f4a2713aSLionel Sambuc        stp w1, w2, [x3], #253
2606f4a2713aSLionel Sambuc        stp w9, w10, [x5], #256
2607f4a2713aSLionel Sambuc        ldp w11, w12, [x9], #-260
2608f4a2713aSLionel Sambuc        stp wsp, w9, [sp], #0
2609*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2610f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldp w3, w2, [x4], #1
2611f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
2612*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2613f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stp w1, w2, [x3], #253
2614f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
2615*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2616f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stp w9, w10, [x5], #256
2617f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
2618*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2619f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldp w11, w12, [x9], #-260
2620f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
2621f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
2622f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stp wsp, w9, [sp], #0
2623f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
2624f4a2713aSLionel Sambuc
2625f4a2713aSLionel Sambuc        ldpsw x9, x2, [sp], #2
2626f4a2713aSLionel Sambuc        ldpsw x1, x2, [x10], #256
2627f4a2713aSLionel Sambuc        ldpsw x3, x4, [x11], #-260
2628*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2629f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldpsw x9, x2, [sp], #2
2630f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
2631*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2632f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldpsw x1, x2, [x10], #256
2633f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
2634*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2635f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldpsw x3, x4, [x11], #-260
2636f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
2637f4a2713aSLionel Sambuc
2638f4a2713aSLionel Sambuc        ldp x2, x5, [sp], #4
2639f4a2713aSLionel Sambuc        ldp x5, x6, [x9], #512
2640f4a2713aSLionel Sambuc        stp x7, x8, [x10], #-520
2641*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504]
2642f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldp x2, x5, [sp], #4
2643f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
2644*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504]
2645f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldp x5, x6, [x9], #512
2646f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
2647*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504]
2648f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stp x7, x8, [x10], #-520
2649f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                            ^
2650f4a2713aSLionel Sambuc
2651f4a2713aSLionel Sambuc        ldp sp, x3, [x10], #0
2652f4a2713aSLionel Sambuc        stp x3, sp, [x9], #0
2653f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
2654f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldp sp, x3, [x10], #0
2655f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
2656f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
2657f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stp x3, sp, [x9], #0
2658f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
2659f4a2713aSLionel Sambuc
2660f4a2713aSLionel Sambuc        stp s3, s5, [sp], #-2
2661f4a2713aSLionel Sambuc        ldp s6, s26, [x4], #-260
2662f4a2713aSLionel Sambuc        stp s13, s19, [x5], #256
2663*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2664f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stp s3, s5, [sp], #-2
2665f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
2666*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2667f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldp s6, s26, [x4], #-260
2668f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
2669*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2670f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stp s13, s19, [x5], #256
2671f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
2672f4a2713aSLionel Sambuc
2673f4a2713aSLionel Sambuc        ldp d3, d4, [xzr], #0
2674f4a2713aSLionel Sambuc        ldp d5, d6, [x0], #512
2675f4a2713aSLionel Sambuc        stp d7, d8, [x0], #-520
2676f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
2677f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldp d3, d4, [xzr], #0
2678f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
2679*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504]
2680f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldp d5, d6, [x0], #512
2681f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
2682*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504]
2683f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stp d7, d8, [x0], #-520
2684f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
2685f4a2713aSLionel Sambuc
2686f4a2713aSLionel Sambuc        ldp d3, q2, [sp], #0
2687f4a2713aSLionel Sambuc        ldp q3, q5, [sp], #8
2688f4a2713aSLionel Sambuc        stp q20, q25, [x5], #1024
2689f4a2713aSLionel Sambuc        ldp q30, q15, [x23], #-1040
2690f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
2691f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldp d3, q2, [sp], #0
2692f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
2693*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 16 in range [-1024, 1008]
2694f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldp q3, q5, [sp], #8
2695f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
2696*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 16 in range [-1024, 1008]
2697f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stp q20, q25, [x5], #1024
2698f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
2699*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 16 in range [-1024, 1008]
2700f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldp q30, q15, [x23], #-1040
2701f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
2702f4a2713aSLionel Sambuc
2703f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
2704f4a2713aSLionel Sambuc// Load/store register pair (pre-indexed)
2705f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
2706f4a2713aSLionel Sambuc
2707f4a2713aSLionel Sambuc        ldp w3, w2, [x4, #1]!
2708f4a2713aSLionel Sambuc        stp w1, w2, [x3, #253]!
2709f4a2713aSLionel Sambuc        stp w9, w10, [x5, #256]!
2710f4a2713aSLionel Sambuc        ldp w11, w12, [x9, #-260]!
2711f4a2713aSLionel Sambuc        stp wsp, w9, [sp, #0]!
2712*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2713f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldp w3, w2, [x4, #1]!
2714f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
2715*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2716f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stp w1, w2, [x3, #253]!
2717f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
2718*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2719f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stp w9, w10, [x5, #256]!
2720f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
2721*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2722f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldp w11, w12, [x9, #-260]!
2723f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
2724f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
2725f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stp wsp, w9, [sp, #0]!
2726f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
2727f4a2713aSLionel Sambuc
2728f4a2713aSLionel Sambuc        ldpsw x9, x2, [sp, #2]!
2729f4a2713aSLionel Sambuc        ldpsw x1, x2, [x10, #256]!
2730f4a2713aSLionel Sambuc        ldpsw x3, x4, [x11, #-260]!
2731*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2732f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldpsw x9, x2, [sp, #2]!
2733f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
2734*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2735f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldpsw x1, x2, [x10, #256]!
2736f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
2737*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2738f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldpsw x3, x4, [x11, #-260]!
2739f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
2740f4a2713aSLionel Sambuc
2741f4a2713aSLionel Sambuc        ldp x2, x5, [sp, #4]!
2742f4a2713aSLionel Sambuc        ldp x5, x6, [x9, #512]!
2743f4a2713aSLionel Sambuc        stp x7, x8, [x10, #-520]!
2744*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504]
2745f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldp x2, x5, [sp, #4]!
2746f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
2747*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504]
2748f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldp x5, x6, [x9, #512]!
2749f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
2750*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504]
2751f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stp x7, x8, [x10, #-520]!
2752f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
2753f4a2713aSLionel Sambuc
2754f4a2713aSLionel Sambuc        ldp sp, x3, [x10, #0]!
2755f4a2713aSLionel Sambuc        stp x3, sp, [x9, #0]!
2756f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
2757f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldp sp, x3, [x10, #0]!
2758f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
2759f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
2760f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stp x3, sp, [x9, #0]!
2761f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
2762f4a2713aSLionel Sambuc
2763f4a2713aSLionel Sambuc        stp s3, s5, [sp, #-2]!
2764f4a2713aSLionel Sambuc        ldp s6, s26, [x4, #-260]!
2765f4a2713aSLionel Sambuc        stp s13, s19, [x5, #256]!
2766*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2767f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stp s3, s5, [sp, #-2]!
2768f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
2769*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2770f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldp s6, s26, [x4, #-260]!
2771f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
2772*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2773f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stp s13, s19, [x5, #256]!
2774f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
2775f4a2713aSLionel Sambuc
2776f4a2713aSLionel Sambuc        ldp d3, d4, [xzr, #0]!
2777f4a2713aSLionel Sambuc        ldp d5, d6, [x0, #512]!
2778f4a2713aSLionel Sambuc        stp d7, d8, [x0, #-520]!
2779f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
2780f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldp d3, d4, [xzr, #0]!
2781f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
2782*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504]
2783f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldp d5, d6, [x0, #512]!
2784f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
2785*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504]
2786f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stp d7, d8, [x0, #-520]!
2787f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
2788f4a2713aSLionel Sambuc
2789f4a2713aSLionel Sambuc        ldp d3, q2, [sp, #0]!
2790f4a2713aSLionel Sambuc        ldp q3, q5, [sp, #8]!
2791f4a2713aSLionel Sambuc        stp q20, q25, [x5, #1024]!
2792f4a2713aSLionel Sambuc        ldp q30, q15, [x23, #-1040]!
2793f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
2794f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldp d3, q2, [sp, #0]!
2795f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
2796*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 16 in range [-1024, 1008]
2797f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldp q3, q5, [sp, #8]!
2798f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
2799*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 16 in range [-1024, 1008]
2800f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stp q20, q25, [x5, #1024]!
2801f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
2802*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 16 in range [-1024, 1008]
2803f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldp q30, q15, [x23, #-1040]!
2804f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
2805f4a2713aSLionel Sambuc
2806f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
2807f4a2713aSLionel Sambuc// Load/store register pair (offset)
2808f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
2809f4a2713aSLionel Sambuc        ldnp w3, w2, [x4, #1]
2810f4a2713aSLionel Sambuc        stnp w1, w2, [x3, #253]
2811f4a2713aSLionel Sambuc        stnp w9, w10, [x5, #256]
2812f4a2713aSLionel Sambuc        ldnp w11, w12, [x9, #-260]
2813f4a2713aSLionel Sambuc        stnp wsp, w9, [sp]
2814*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2815f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldnp w3, w2, [x4, #1]
2816f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
2817*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2818f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stnp w1, w2, [x3, #253]
2819f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
2820*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2821f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stnp w9, w10, [x5, #256]
2822f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                            ^
2823*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2824f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldnp w11, w12, [x9, #-260]
2825f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                             ^
2826f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
2827f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stnp wsp, w9, [sp]
2828f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
2829f4a2713aSLionel Sambuc
2830f4a2713aSLionel Sambuc        ldnp x2, x5, [sp, #4]
2831f4a2713aSLionel Sambuc        ldnp x5, x6, [x9, #512]
2832f4a2713aSLionel Sambuc        stnp x7, x8, [x10, #-520]
2833*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504]
2834f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldnp x2, x5, [sp, #4]
2835f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
2836*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504]
2837f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldnp x5, x6, [x9, #512]
2838f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
2839*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504]
2840f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stnp x7, x8, [x10, #-520]
2841f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                            ^
2842f4a2713aSLionel Sambuc
2843f4a2713aSLionel Sambuc        ldnp sp, x3, [x10]
2844f4a2713aSLionel Sambuc        stnp x3, sp, [x9]
2845f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
2846f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldnp sp, x3, [x10]
2847f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
2848f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
2849f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stnp x3, sp, [x9]
2850f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
2851f4a2713aSLionel Sambuc
2852f4a2713aSLionel Sambuc        stnp s3, s5, [sp, #-2]
2853f4a2713aSLionel Sambuc        ldnp s6, s26, [x4, #-260]
2854f4a2713aSLionel Sambuc        stnp s13, s19, [x5, #256]
2855*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2856f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stnp s3, s5, [sp, #-2]
2857f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
2858*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2859f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldnp s6, s26, [x4, #-260]
2860f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
2861*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252]
2862f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stnp s13, s19, [x5, #256]
2863f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
2864f4a2713aSLionel Sambuc
2865f4a2713aSLionel Sambuc        ldnp d3, d4, [xzr]
2866f4a2713aSLionel Sambuc        ldnp d5, d6, [x0, #512]
2867f4a2713aSLionel Sambuc        stnp d7, d8, [x0, #-520]
2868f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
2869f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldnp d3, d4, [xzr]
2870f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
2871*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504]
2872f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldnp d5, d6, [x0, #512]
2873f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
2874*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504]
2875f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stnp d7, d8, [x0, #-520]
2876f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
2877f4a2713aSLionel Sambuc
2878f4a2713aSLionel Sambuc        ldnp d3, q2, [sp]
2879f4a2713aSLionel Sambuc        ldnp q3, q5, [sp, #8]
2880f4a2713aSLionel Sambuc        stnp q20, q25, [x5, #1024]
2881f4a2713aSLionel Sambuc        ldnp q30, q15, [x23, #-1040]
2882f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
2883f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldnp d3, q2, [sp]
2884f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
2885*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 16 in range [-1024, 1008]
2886f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldnp q3, q5, [sp, #8]
2887f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
2888*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 16 in range [-1024, 1008]
2889f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         stnp q20, q25, [x5, #1024]
2890f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
2891*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 16 in range [-1024, 1008]
2892f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ldnp q30, q15, [x23, #-1040]
2893f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
2894f4a2713aSLionel Sambuc
2895f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
2896f4a2713aSLionel Sambuc// Logical (shifted register)
2897f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
2898f4a2713aSLionel Sambuc        orr w0, w1, #0xffffffff
2899f4a2713aSLionel Sambuc        and x3, x5, #0xffffffffffffffff
2900f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected compatible register or logical immediate
2901f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         orr w0, w1, #0xffffffff
2902f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
2903f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected compatible register or logical immediate
2904f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         and x3, x5, #0xffffffffffffffff
2905f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
2906f4a2713aSLionel Sambuc
2907f4a2713aSLionel Sambuc        ands w3, w9, #0x0
2908f4a2713aSLionel Sambuc        eor x2, x0, #0x0
2909f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected compatible register or logical immediate
2910f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ands w3, w9, #0x0
2911f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
2912f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected compatible register or logical immediate
2913f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         eor x2, x0, #0x0
2914f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
2915f4a2713aSLionel Sambuc
2916f4a2713aSLionel Sambuc        eor w3, w5, #0x83
2917f4a2713aSLionel Sambuc        eor x9, x20, #0x1234
2918f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected compatible register or logical immediate
2919f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         eor w3, w5, #0x83
2920f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
2921f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected compatible register or logical immediate
2922f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         eor x9, x20, #0x1234
2923f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
2924f4a2713aSLionel Sambuc
2925f4a2713aSLionel Sambuc        and wzr, w4, 0xffff0000
2926f4a2713aSLionel Sambuc        eor xzr, x9, #0xffff0000ffff0000
2927f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
2928f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         and wzr, w4, 0xffff0000
2929f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
2930f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
2931f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         eor xzr, x9, #0xffff0000ffff0000
2932f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
2933f4a2713aSLionel Sambuc
2934f4a2713aSLionel Sambuc        orr w3, wsp, #0xf0f0f0f0
2935f4a2713aSLionel Sambuc        ands x3, sp, #0xaaaaaaaaaaaaaaaa
2936f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
2937f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         orr w3, wsp, #0xf0f0f0f0
2938f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
2939f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
2940f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ands x3, sp, #0xaaaaaaaaaaaaaaaa
2941f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
2942f4a2713aSLionel Sambuc
2943f4a2713aSLionel Sambuc        tst sp, #0xe0e0e0e0e0e0e0e0
2944f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
2945f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         tst sp, #0xe0e0e0e0e0e0e0e0
2946f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
2947f4a2713aSLionel Sambuc
2948f4a2713aSLionel Sambuc        // movi has been removed from the specification. Make sure it's really gone.
2949f4a2713aSLionel Sambuc        movi wzr, #0x44444444
2950f4a2713aSLionel Sambuc        movi w3, #0xffff
2951f4a2713aSLionel Sambuc        movi x9, #0x0000ffff00000000
2952f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
2953f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         movi wzr, #0x44444444
2954f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ^
2955f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
2956f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         movi w3, #0xffff
2957f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ^
2958f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
2959f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         movi x9, #0x0000ffff00000000
2960f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ^
2961f4a2713aSLionel Sambuc
2962f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
2963f4a2713aSLionel Sambuc// Logical (shifted register)
2964f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
2965f4a2713aSLionel Sambuc
2966f4a2713aSLionel Sambuc        //// Out of range shifts
2967f4a2713aSLionel Sambuc        and w2, w24, w6, lsl #-1
2968f4a2713aSLionel Sambuc        and w4, w6, w12, lsl #32
2969f4a2713aSLionel Sambuc        and x4, x6, x12, lsl #64
2970f4a2713aSLionel Sambuc        and x2, x5, x11, asr
2971f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected integer shift amount
2972f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         and w2, w24, w6, lsl #-1
2973f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                               ^
2974f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 31]
2975f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         and w4, w6, w12, lsl #32
2976f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                          ^
2977f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 63]
2978f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         and x4, x6, x12, lsl #64
2979f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                          ^
2980f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected #imm after shift specifier
2981f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         and x2, x5, x11, asr
2982f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                             ^
2983f4a2713aSLionel Sambuc
2984f4a2713aSLionel Sambuc        //// sp not allowed
2985f4a2713aSLionel Sambuc        orn wsp, w3, w5
2986f4a2713aSLionel Sambuc        bics x20, sp, x9, lsr #0
2987f4a2713aSLionel Sambuc        orn x2, x6, sp, lsl #3
2988*0a6a1f1dSLionel Sambuc// FIXME: the diagnostic we get for 'orn wsp, w3, w5' is from the orn alias,
2989*0a6a1f1dSLionel Sambuc// which is a better match than the genuine ORNWri, whereas it would be better
2990*0a6a1f1dSLionel Sambuc// to get the ORNWri diagnostic when the alias did not match, i.e. the
2991*0a6a1f1dSLionel Sambuc// alias' diagnostics should have a lower priority.
2992*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: expected compatible register or logical immediate
2993f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         orn wsp, w3, w5
2994f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
2995f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
2996f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         bics x20, sp, x9, lsr #0
2997f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                   ^
2998*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: expected compatible register or logical immediate
2999f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         orn x2, x6, sp, lsl #3
3000f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
3001f4a2713aSLionel Sambuc
3002f4a2713aSLionel Sambuc        //// Mismatched registers
3003f4a2713aSLionel Sambuc        and x3, w2, w1
3004f4a2713aSLionel Sambuc        ands w1, x12, w2
3005f4a2713aSLionel Sambuc        and x4, x5, w6, lsl #12
3006f4a2713aSLionel Sambuc        orr w2, w5, x7, asr #0
3007f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
3008f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         and x3, w2, w1
3009f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
3010f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
3011f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ands w1, x12, w2
3012f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
3013f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected compatible register or logical immediate
3014f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         and x4, x5, w6, lsl #12
3015f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
3016f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected compatible register or logical immediate
3017f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         orr w2, w5, x7, asr #0
3018f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
3019f4a2713aSLionel Sambuc
3020f4a2713aSLionel Sambuc        //// Shifts should not be allowed on mov
3021f4a2713aSLionel Sambuc        mov w3, w7, lsl #13
3022f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
3023f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         mov w3, w7, lsl #13
3024f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
3025f4a2713aSLionel Sambuc
3026f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
3027f4a2713aSLionel Sambuc// Move wide (immediate)
3028f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
3029f4a2713aSLionel Sambuc
3030f4a2713aSLionel Sambuc        movz w3, #65536, lsl #0
3031f4a2713aSLionel Sambuc        movz w4, #65536
3032f4a2713aSLionel Sambuc        movn w1, #2, lsl #1
3033f4a2713aSLionel Sambuc        movk w3, #0, lsl #-1
3034f4a2713aSLionel Sambuc        movn w2, #-1, lsl #0
3035f4a2713aSLionel Sambuc        movz x3, #-1
3036f4a2713aSLionel Sambuc        movk w3, #1, lsl #32
3037f4a2713aSLionel Sambuc        movn x2, #12, lsl #64
3038*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535]
3039f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         movz w3, #65536, lsl #0
3040f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
3041*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535]
3042f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         movz w4, #65536
3043f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
3044*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT: error: expected relocated symbol or integer in range [0, 65535]
3045*0a6a1f1dSLionel Sambuc// CHECK-ERROR-ARM64-NEXT: error: expected 'lsl' with optional integer 0 or 16
3046f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         movn w1, #2, lsl #1
3047f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
3048*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT: error: only 'lsl #+N' valid after immediate
3049*0a6a1f1dSLionel Sambuc// CHECK-ERROR-ARM64-NEXT: error: expected integer shift amount
3050f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         movk w3, #0, lsl #-1
3051f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
3052*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535]
3053f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         movn w2, #-1, lsl #0
3054f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
3055*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535]
3056f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         movz x3, #-1
3057f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
3058*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT: error: expected relocated symbol or integer in range [0, 65535]
3059*0a6a1f1dSLionel Sambuc// CHECK-ERROR-ARM64-NEXT: error: expected 'lsl' with optional integer 0 or 16
3060f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         movk w3, #1, lsl #32
3061f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
3062*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT: error: expected relocated symbol or integer in range [0, 65535]
3063*0a6a1f1dSLionel Sambuc// CHECK-ERROR-ARM64-NEXT: error: expected 'lsl' with optional integer 0, 16, 32 or 48
3064f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         movn x2, #12, lsl #64
3065f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
3066f4a2713aSLionel Sambuc
3067f4a2713aSLionel Sambuc        movz x12, #:abs_g0:sym, lsl #16
3068f4a2713aSLionel Sambuc        movz x12, #:abs_g0:sym, lsl #0
3069f4a2713aSLionel Sambuc        movn x2, #:abs_g0:sym
3070f4a2713aSLionel Sambuc        movk w3, #:abs_g0:sym
3071f4a2713aSLionel Sambuc        movz x3, #:abs_g0_nc:sym
3072f4a2713aSLionel Sambuc        movn x4, #:abs_g0_nc:sym
3073*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535]
3074f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         movz x12, #:abs_g0:sym, lsl #16
3075f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                                 ^
3076*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535]
3077f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         movz x12, #:abs_g0:sym, lsl #0
3078f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                                 ^
3079*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535]
3080*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT:         movn x2, #:abs_g0:sym
3081*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT:                  ^
3082*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535]
3083f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         movk w3, #:abs_g0:sym
3084f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
3085*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535]
3086f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         movz x3, #:abs_g0_nc:sym
3087f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
3088*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535]
3089f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         movn x4, #:abs_g0_nc:sym
3090f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
3091f4a2713aSLionel Sambuc
3092f4a2713aSLionel Sambuc        movn x2, #:abs_g1:sym
3093f4a2713aSLionel Sambuc        movk w3, #:abs_g1:sym
3094f4a2713aSLionel Sambuc        movz x3, #:abs_g1_nc:sym
3095f4a2713aSLionel Sambuc        movn x4, #:abs_g1_nc:sym
3096*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535]
3097*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT:         movn x2, #:abs_g1:sym
3098*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT:                  ^
3099*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535]
3100f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         movk w3, #:abs_g1:sym
3101f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
3102*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535]
3103f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         movz x3, #:abs_g1_nc:sym
3104f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
3105*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535]
3106f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         movn x4, #:abs_g1_nc:sym
3107f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
3108f4a2713aSLionel Sambuc
3109f4a2713aSLionel Sambuc        movz w12, #:abs_g2:sym
3110f4a2713aSLionel Sambuc        movn x12, #:abs_g2:sym
3111f4a2713aSLionel Sambuc        movk x13, #:abs_g2:sym
3112f4a2713aSLionel Sambuc        movk w3, #:abs_g2_nc:sym
3113f4a2713aSLionel Sambuc        movz x13, #:abs_g2_nc:sym
3114f4a2713aSLionel Sambuc        movn x24, #:abs_g2_nc:sym
3115*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535]
3116f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         movz w12, #:abs_g2:sym
3117f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                   ^
3118*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535]
3119*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT:         movn x12, #:abs_g2:sym
3120*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT:                   ^
3121*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535]
3122f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         movk x13, #:abs_g2:sym
3123f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                   ^
3124*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535]
3125f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         movk w3, #:abs_g2_nc:sym
3126f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
3127*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535]
3128f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         movz x13, #:abs_g2_nc:sym
3129f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                   ^
3130*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535]
3131f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         movn x24, #:abs_g2_nc:sym
3132f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                   ^
3133f4a2713aSLionel Sambuc
3134f4a2713aSLionel Sambuc        movn x19, #:abs_g3:sym
3135f4a2713aSLionel Sambuc        movz w20, #:abs_g3:sym
3136f4a2713aSLionel Sambuc        movk w21, #:abs_g3:sym
3137*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535]
3138*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT:         movn x19, #:abs_g3:sym
3139*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT:                   ^
3140*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535]
3141f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         movz w20, #:abs_g3:sym
3142f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                   ^
3143*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535]
3144f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         movk w21, #:abs_g3:sym
3145f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                   ^
3146f4a2713aSLionel Sambuc
3147f4a2713aSLionel Sambuc        movk x19, #:abs_g0_s:sym
3148f4a2713aSLionel Sambuc        movk w23, #:abs_g0_s:sym
3149*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535]
3150f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         movk x19, #:abs_g0_s:sym
3151f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                   ^
3152*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535]
3153f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         movk w23, #:abs_g0_s:sym
3154f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                   ^
3155f4a2713aSLionel Sambuc
3156f4a2713aSLionel Sambuc        movk x19, #:abs_g1_s:sym
3157f4a2713aSLionel Sambuc        movk w23, #:abs_g1_s:sym
3158*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535]
3159f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         movk x19, #:abs_g1_s:sym
3160f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                   ^
3161*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535]
3162f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         movk w23, #:abs_g1_s:sym
3163f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                   ^
3164f4a2713aSLionel Sambuc
3165f4a2713aSLionel Sambuc        movz w2, #:abs_g2_s:sym
3166f4a2713aSLionel Sambuc        movn w29, #:abs_g2_s:sym
3167f4a2713aSLionel Sambuc        movk x19, #:abs_g2_s:sym
3168f4a2713aSLionel Sambuc        movk w23, #:abs_g2_s:sym
3169*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535]
3170f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         movz w2, #:abs_g2_s:sym
3171f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                    ^
3172*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535]
3173f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         movn w29, #:abs_g2_s:sym
3174f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                   ^
3175*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535]
3176f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         movk x19, #:abs_g2_s:sym
3177f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                   ^
3178*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535]
3179f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         movk w23, #:abs_g2_s:sym
3180f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                   ^
3181f4a2713aSLionel Sambuc
3182f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
3183f4a2713aSLionel Sambuc// PC-relative addressing
3184f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
3185f4a2713aSLionel Sambuc
3186f4a2713aSLionel Sambuc        adr sp, loc             // expects xzr
3187f4a2713aSLionel Sambuc        adrp x3, #20            // Immediate unaligned
3188f4a2713aSLionel Sambuc        adrp w2, loc            // 64-bit register needed
3189f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
3190f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         adr sp, loc
3191f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3192f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected label or encodable integer pc offset
3193f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         adrp x3, #20
3194f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
3195f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
3196f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         adrp w2, loc
3197f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
3198f4a2713aSLionel Sambuc
3199f4a2713aSLionel Sambuc        adr x9, #1048576
3200f4a2713aSLionel Sambuc        adr x2, #-1048577
3201f4a2713aSLionel Sambuc        adrp x9, #4294967296
3202f4a2713aSLionel Sambuc        adrp x20, #-4294971392
3203f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected label or encodable integer pc offset
3204f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         adr x9, #1048576
3205f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
3206f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected label or encodable integer pc offset
3207f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         adr x2, #-1048577
3208f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
3209f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected label or encodable integer pc offset
3210f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         adrp x9, #4294967296
3211f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
3212f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected label or encodable integer pc offset
3213f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         adrp x20, #-4294971392
3214f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                   ^
3215f4a2713aSLionel Sambuc
3216f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
3217f4a2713aSLionel Sambuc// System
3218f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
3219f4a2713aSLionel Sambuc
3220f4a2713aSLionel Sambuc        hint #-1
3221f4a2713aSLionel Sambuc        hint #128
3222*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 127]
3223f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         hint #-1
3224f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
3225*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 127]
3226f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         hint #128
3227f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
3228f4a2713aSLionel Sambuc
3229f4a2713aSLionel Sambuc        clrex #-1
3230f4a2713aSLionel Sambuc        clrex #16
3231*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15]
3232f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         clrex #-1
3233f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:               ^
3234*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15]
3235f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         clrex #16
3236f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:               ^
3237f4a2713aSLionel Sambuc
3238f4a2713aSLionel Sambuc        dsb #-1
3239f4a2713aSLionel Sambuc        dsb #16
3240f4a2713aSLionel Sambuc        dmb #-1
3241f4a2713aSLionel Sambuc        dmb #16
3242*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{Invalid immediate for instruction|barrier operand out of range}}
3243f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         dsb #-1
3244f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3245*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{Invalid immediate for instruction|barrier operand out of range}}
3246f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         dsb #16
3247f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3248*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{Invalid immediate for instruction|barrier operand out of range}}
3249f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         dmb #-1
3250f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3251*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{Invalid immediate for instruction|barrier operand out of range}}
3252f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         dmb #16
3253f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3254f4a2713aSLionel Sambuc
3255f4a2713aSLionel Sambuc        isb #-1
3256f4a2713aSLionel Sambuc        isb #16
3257*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{Invalid immediate for instruction|barrier operand out of range}}
3258f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         isb #-1
3259f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3260*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{Invalid immediate for instruction|barrier operand out of range}}
3261f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         isb #16
3262f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3263f4a2713aSLionel Sambuc
3264f4a2713aSLionel Sambuc        msr daifset, x4
3265f4a2713aSLionel Sambuc        msr spsel, #-1
3266f4a2713aSLionel Sambuc        msr spsel #-1
3267f4a2713aSLionel Sambuc        msr daifclr, #16
3268*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15]
3269f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr daifset, x4
3270f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
3271*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15]
3272f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr spsel, #-1
3273f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                    ^
3274*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected comma before next operand|unexpected token in argument list}}
3275f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr spsel #-1
3276f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                   ^
3277*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15]
3278f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr daifclr, #16
3279f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
3280f4a2713aSLionel Sambuc
3281f4a2713aSLionel Sambuc        sys #8, c1, c2, #7, x9
3282f4a2713aSLionel Sambuc        sys #3, c16, c2, #3, x10
3283f4a2713aSLionel Sambuc        sys #2, c11, c16, #5
3284f4a2713aSLionel Sambuc        sys #4, c9, c8, #8, xzr
3285f4a2713aSLionel Sambuc        sysl x11, #8, c1, c2, #7
3286f4a2713aSLionel Sambuc        sysl x13, #3, c16, c2, #3
3287f4a2713aSLionel Sambuc        sysl x9, #2, c11, c16, #5
3288f4a2713aSLionel Sambuc        sysl x4, #4, c9, c8, #8
3289*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error:  {{expected|immediate must be an}} integer in range [0, 7]
3290f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sys #8, c1, c2, #7, x9
3291f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3292f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: Expected cN operand where 0 <= N <= 15
3293f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sys #3, c16, c2, #3, x10
3294f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
3295f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: Expected cN operand where 0 <= N <= 15
3296f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sys #2, c11, c16, #5
3297f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                      ^
3298*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 7]
3299f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sys #4, c9, c8, #8, xzr
3300f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
3301*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 7]
3302f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sysl x11, #8, c1, c2, #7
3303f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                   ^
3304f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: Expected cN operand where 0 <= N <= 15
3305f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sysl x13, #3, c16, c2, #3
3306f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
3307f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: Expected cN operand where 0 <= N <= 15
3308f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sysl x9, #2, c11, c16, #5
3309f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                           ^
3310*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 7]
3311f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         sysl x4, #4, c9, c8, #8
3312f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                              ^
3313f4a2713aSLionel Sambuc
3314f4a2713aSLionel Sambuc        ic ialluis, x2
3315f4a2713aSLionel Sambuc        ic allu, x7
3316f4a2713aSLionel Sambuc        ic ivau
3317*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: specified {{IC|ic}} op does not use a register
3318f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ic ialluis, x2
3319f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
3320*0a6a1f1dSLionel Sambuc// CHECK-ERROR-AARCH64-NEXT: error: operand specifier not recognised
3321*0a6a1f1dSLionel Sambuc// CHECK-ERROR-ARM64-NEXT: error: invalid operand for IC instruction
3322f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ic allu, x7
3323f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:            ^
3324*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: specified {{IC|ic}} op requires a register
3325f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         ic ivau
3326f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:            ^
3327f4a2713aSLionel Sambuc
3328f4a2713aSLionel Sambuc        tlbi IPAS2E1IS
3329f4a2713aSLionel Sambuc        tlbi IPAS2LE1IS
3330f4a2713aSLionel Sambuc        tlbi VMALLE1IS, x12
3331f4a2713aSLionel Sambuc        tlbi ALLE2IS, x11
3332f4a2713aSLionel Sambuc        tlbi ALLE3IS, x20
3333f4a2713aSLionel Sambuc        tlbi VAE1IS
3334f4a2713aSLionel Sambuc        tlbi VAE2IS
3335f4a2713aSLionel Sambuc        tlbi VAE3IS
3336f4a2713aSLionel Sambuc        tlbi ASIDE1IS
3337f4a2713aSLionel Sambuc        tlbi VAAE1IS
3338f4a2713aSLionel Sambuc        tlbi ALLE1IS, x0
3339f4a2713aSLionel Sambuc        tlbi VALE1IS
3340f4a2713aSLionel Sambuc        tlbi VALE2IS
3341f4a2713aSLionel Sambuc        tlbi VALE3IS
3342f4a2713aSLionel Sambuc        tlbi VMALLS12E1IS, xzr
3343f4a2713aSLionel Sambuc        tlbi VAALE1IS
3344f4a2713aSLionel Sambuc        tlbi IPAS2E1
3345f4a2713aSLionel Sambuc        tlbi IPAS2LE1
3346f4a2713aSLionel Sambuc        tlbi VMALLE1, x9
3347f4a2713aSLionel Sambuc        tlbi ALLE2, x10
3348f4a2713aSLionel Sambuc        tlbi ALLE3, x11
3349f4a2713aSLionel Sambuc        tlbi VAE1
3350f4a2713aSLionel Sambuc        tlbi VAE2
3351f4a2713aSLionel Sambuc        tlbi VAE3
3352f4a2713aSLionel Sambuc        tlbi ASIDE1
3353f4a2713aSLionel Sambuc        tlbi VAAE1
3354f4a2713aSLionel Sambuc        tlbi ALLE1, x25
3355f4a2713aSLionel Sambuc        tlbi VALE1
3356f4a2713aSLionel Sambuc        tlbi VALE2
3357f4a2713aSLionel Sambuc        tlbi VALE3
3358f4a2713aSLionel Sambuc        tlbi VMALLS12E1, x15
3359f4a2713aSLionel Sambuc        tlbi VAALE1
3360*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register
3361f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         tlbi IPAS2E1IS
3362f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
3363*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register
3364f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         tlbi IPAS2LE1IS
3365f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
3366*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op does not use a register
3367f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         tlbi VMALLE1IS, x12
3368f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                         ^
3369*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op does not use a register
3370f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         tlbi ALLE2IS, x11
3371f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
3372*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op does not use a register
3373f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         tlbi ALLE3IS, x20
3374f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
3375*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register
3376f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         tlbi VAE1IS
3377f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
3378*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register
3379f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         tlbi VAE2IS
3380f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
3381*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register
3382f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         tlbi VAE3IS
3383f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
3384*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register
3385f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         tlbi ASIDE1IS
3386f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
3387*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register
3388f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         tlbi VAAE1IS
3389f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
3390*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op does not use a register
3391f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         tlbi ALLE1IS, x0
3392f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
3393*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register
3394f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         tlbi VALE1IS
3395f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
3396*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register
3397f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         tlbi VALE2IS
3398f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
3399*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register
3400f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         tlbi VALE3IS
3401f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
3402*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op does not use a register
3403f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         tlbi VMALLS12E1IS, xzr
3404f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                            ^
3405*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register
3406f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         tlbi VAALE1IS
3407f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
3408*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register
3409f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         tlbi IPAS2E1
3410f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
3411*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register
3412f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         tlbi IPAS2LE1
3413f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
3414*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op does not use a register
3415f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         tlbi VMALLE1, x9
3416f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                       ^
3417*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op does not use a register
3418f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         tlbi ALLE2, x10
3419f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
3420*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op does not use a register
3421f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         tlbi ALLE3, x11
3422f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
3423*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register
3424f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         tlbi VAE1
3425f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
3426*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register
3427f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         tlbi VAE2
3428f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
3429*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register
3430f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         tlbi VAE3
3431f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
3432*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register
3433f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         tlbi ASIDE1
3434f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
3435*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register
3436f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         tlbi VAAE1
3437f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
3438*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op does not use a register
3439f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         tlbi ALLE1, x25
3440f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                     ^
3441*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register
3442f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         tlbi VALE1
3443f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
3444*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register
3445f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         tlbi VALE2
3446f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
3447*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register
3448f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         tlbi VALE3
3449f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
3450*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op does not use a register
3451f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         tlbi VMALLS12E1, x15
3452f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                          ^
3453*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register
3454f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         tlbi VAALE1
3455f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
3456f4a2713aSLionel Sambuc
3457f4a2713aSLionel Sambuc// For the MSR/MRS instructions, first make sure read-only and
3458f4a2713aSLionel Sambuc// write-only registers actually are.
3459f4a2713aSLionel Sambuc        msr MDCCSR_EL0, x12
3460f4a2713aSLionel Sambuc        msr DBGDTRRX_EL0, x12
3461f4a2713aSLionel Sambuc        msr MDRAR_EL1, x12
3462f4a2713aSLionel Sambuc        msr OSLSR_EL1, x12
3463f4a2713aSLionel Sambuc        msr DBGAUTHSTATUS_EL1, x12
3464f4a2713aSLionel Sambuc        msr MIDR_EL1, x12
3465f4a2713aSLionel Sambuc        msr CCSIDR_EL1, x12
3466f4a2713aSLionel Sambuc        msr CLIDR_EL1, x12
3467f4a2713aSLionel Sambuc        msr CTR_EL0, x12
3468f4a2713aSLionel Sambuc        msr MPIDR_EL1, x12
3469f4a2713aSLionel Sambuc        msr REVIDR_EL1, x12
3470f4a2713aSLionel Sambuc        msr AIDR_EL1, x12
3471f4a2713aSLionel Sambuc        msr DCZID_EL0, x12
3472f4a2713aSLionel Sambuc        msr ID_PFR0_EL1, x12
3473f4a2713aSLionel Sambuc        msr ID_PFR1_EL1, x12
3474f4a2713aSLionel Sambuc        msr ID_DFR0_EL1, x12
3475f4a2713aSLionel Sambuc        msr ID_AFR0_EL1, x12
3476f4a2713aSLionel Sambuc        msr ID_MMFR0_EL1, x12
3477f4a2713aSLionel Sambuc        msr ID_MMFR1_EL1, x12
3478f4a2713aSLionel Sambuc        msr ID_MMFR2_EL1, x12
3479f4a2713aSLionel Sambuc        msr ID_MMFR3_EL1, x12
3480f4a2713aSLionel Sambuc        msr ID_ISAR0_EL1, x12
3481f4a2713aSLionel Sambuc        msr ID_ISAR1_EL1, x12
3482f4a2713aSLionel Sambuc        msr ID_ISAR2_EL1, x12
3483f4a2713aSLionel Sambuc        msr ID_ISAR3_EL1, x12
3484f4a2713aSLionel Sambuc        msr ID_ISAR4_EL1, x12
3485f4a2713aSLionel Sambuc        msr ID_ISAR5_EL1, x12
3486f4a2713aSLionel Sambuc        msr MVFR0_EL1, x12
3487f4a2713aSLionel Sambuc        msr MVFR1_EL1, x12
3488f4a2713aSLionel Sambuc        msr MVFR2_EL1, x12
3489f4a2713aSLionel Sambuc        msr ID_AA64PFR0_EL1, x12
3490f4a2713aSLionel Sambuc        msr ID_AA64PFR1_EL1, x12
3491f4a2713aSLionel Sambuc        msr ID_AA64DFR0_EL1, x12
3492f4a2713aSLionel Sambuc        msr ID_AA64DFR1_EL1, x12
3493f4a2713aSLionel Sambuc        msr ID_AA64AFR0_EL1, x12
3494f4a2713aSLionel Sambuc        msr ID_AA64AFR1_EL1, x12
3495f4a2713aSLionel Sambuc        msr ID_AA64ISAR0_EL1, x12
3496f4a2713aSLionel Sambuc        msr ID_AA64ISAR1_EL1, x12
3497f4a2713aSLionel Sambuc        msr ID_AA64MMFR0_EL1, x12
3498f4a2713aSLionel Sambuc        msr ID_AA64MMFR1_EL1, x12
3499f4a2713aSLionel Sambuc        msr PMCEID0_EL0, x12
3500f4a2713aSLionel Sambuc        msr PMCEID1_EL0, x12
3501f4a2713aSLionel Sambuc        msr RVBAR_EL1, x12
3502f4a2713aSLionel Sambuc        msr RVBAR_EL2, x12
3503f4a2713aSLionel Sambuc        msr RVBAR_EL3, x12
3504f4a2713aSLionel Sambuc        msr ISR_EL1, x12
3505f4a2713aSLionel Sambuc        msr CNTPCT_EL0, x12
3506f4a2713aSLionel Sambuc        msr CNTVCT_EL0, x12
3507f4a2713aSLionel Sambuc        msr PMEVCNTR31_EL0, x12
3508f4a2713aSLionel Sambuc        msr PMEVTYPER31_EL0, x12
3509f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected writable system register or pstate
3510f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr MDCCSR_EL0, x12
3511f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3512f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3513f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr DBGDTRRX_EL0, x12
3514f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3515f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3516f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr MDRAR_EL1, x12
3517f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3518f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3519f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr OSLSR_EL1, x12
3520f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3521f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3522f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr DBGAUTHSTATUS_EL1, x12
3523f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3524f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3525f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr MIDR_EL1, x12
3526f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3527f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3528f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr CCSIDR_EL1, x12
3529f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3530f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3531f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr CLIDR_EL1, x12
3532f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3533f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3534f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr CTR_EL0, x12
3535f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3536f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3537f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr MPIDR_EL1, x12
3538f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3539f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3540f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr REVIDR_EL1, x12
3541f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3542f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3543f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr AIDR_EL1, x12
3544f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3545f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3546f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr DCZID_EL0, x12
3547f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3548f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3549f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr ID_PFR0_EL1, x12
3550f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3551f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3552f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr ID_PFR1_EL1, x12
3553f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3554f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3555f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr ID_DFR0_EL1, x12
3556f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3557f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3558f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr ID_AFR0_EL1, x12
3559f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3560f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3561f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr ID_MMFR0_EL1, x12
3562f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3563f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3564f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr ID_MMFR1_EL1, x12
3565f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3566f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3567f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr ID_MMFR2_EL1, x12
3568f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3569f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3570f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr ID_MMFR3_EL1, x12
3571f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3572f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3573f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr ID_ISAR0_EL1, x12
3574f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3575f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3576f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr ID_ISAR1_EL1, x12
3577f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3578f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3579f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr ID_ISAR2_EL1, x12
3580f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3581f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3582f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr ID_ISAR3_EL1, x12
3583f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3584f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3585f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr ID_ISAR4_EL1, x12
3586f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3587f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3588f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr ID_ISAR5_EL1, x12
3589f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3590f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3591f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr MVFR0_EL1, x12
3592f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3593f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3594f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr MVFR1_EL1, x12
3595f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3596f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3597f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr MVFR2_EL1, x12
3598f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3599f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3600f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr ID_AA64PFR0_EL1, x12
3601f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3602f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3603f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr ID_AA64PFR1_EL1, x12
3604f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3605f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3606f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr ID_AA64DFR0_EL1, x12
3607f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3608f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3609f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr ID_AA64DFR1_EL1, x12
3610f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3611f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3612f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr ID_AA64AFR0_EL1, x12
3613f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3614f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3615f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr ID_AA64AFR1_EL1, x12
3616f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3617f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3618f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr ID_AA64ISAR0_EL1, x12
3619f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3620f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3621f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr ID_AA64ISAR1_EL1, x12
3622f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3623f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3624f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr ID_AA64MMFR0_EL1, x12
3625f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3626f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3627f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr ID_AA64MMFR1_EL1, x12
3628f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3629f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3630f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr PMCEID0_EL0, x12
3631f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3632f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3633f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr PMCEID1_EL0, x12
3634f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3635f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3636f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr RVBAR_EL1, x12
3637f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3638f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3639f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr RVBAR_EL2, x12
3640f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3641f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3642f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr RVBAR_EL3, x12
3643f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3644f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3645f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr ISR_EL1, x12
3646f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3647f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3648f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr CNTPCT_EL0, x12
3649f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3650f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3651f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr CNTVCT_EL0, x12
3652f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3653f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3654f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr PMEVCNTR31_EL0, x12
3655f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3656f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected writable system register or pstate
3657f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         msr PMEVTYPER31_EL0, x12
3658f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3659f4a2713aSLionel Sambuc
3660f4a2713aSLionel Sambuc        mrs x9, DBGDTRTX_EL0
3661f4a2713aSLionel Sambuc        mrs x9, OSLAR_EL1
3662f4a2713aSLionel Sambuc        mrs x9, PMSWINC_EL0
3663f4a2713aSLionel Sambuc        mrs x9, PMEVCNTR31_EL0
3664f4a2713aSLionel Sambuc        mrs x9, PMEVTYPER31_EL0
3665f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected readable system register
3666f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         mrs x9, DBGDTRTX_EL0
3667f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
3668f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected readable system register
3669f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         mrs x9, OSLAR_EL1
3670f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
3671f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected readable system register
3672f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         mrs x9, PMSWINC_EL0
3673f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
3674f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected readable system register
3675f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         mrs x9, PMEVCNTR31_EL0
3676f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
3677f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected readable system register
3678f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         mrs x9, PMEVTYPER31_EL0
3679f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
3680f4a2713aSLionel Sambuc
3681f4a2713aSLionel Sambuc// Now check some invalid generic names
3682f4a2713aSLionel Sambuc        mrs x12, s3_8_c11_c13_2
3683f4a2713aSLionel Sambuc        mrs x19, s3_2_c15_c16_2
3684f4a2713aSLionel Sambuc        mrs x30, s3_2_c15_c1_8
3685*0a6a1f1dSLionel Sambuc        mrs x4, s4_7_c15_c15_7
3686*0a6a1f1dSLionel Sambuc        mrs x14, s3_7_c16_c15_7
3687f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected readable system register
3688f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         mrs x12, s3_8_c11_c13_2
3689f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
3690f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected readable system register
3691f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         mrs x19, s3_2_c15_c16_2
3692f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
3693f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected readable system register
3694f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         mrs x30, s3_2_c15_c1_8
3695f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
3696*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: expected readable system register
3697*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:         mrs x4, s4_7_c15_c15_7
3698*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
3699*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: expected readable system register
3700*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:         mrs x14, s3_7_c16_c15_7
3701*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT:                  ^
3702f4a2713aSLionel Sambuc
3703f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
3704f4a2713aSLionel Sambuc// Test and branch (immediate)
3705f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
3706f4a2713aSLionel Sambuc
3707f4a2713aSLionel Sambuc        tbz w3, #-1, addr
3708f4a2713aSLionel Sambuc        tbz w3, #32, nowhere
3709f4a2713aSLionel Sambuc        tbz x9, #-1, there
3710f4a2713aSLionel Sambuc        tbz x20, #64, dont
3711*0a6a1f1dSLionel Sambuc// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 31]
3712f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:     tbz w3, #-1, addr
3713f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:             ^
3714*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31]
3715f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        tbz w3, #32, nowhere
3716f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                ^
3717*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 63]
3718f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        tbz x9, #-1, there
3719f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                ^
3720*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 63]
3721f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        tbz x20, #64, dont
3722f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
3723f4a2713aSLionel Sambuc
3724f4a2713aSLionel Sambuc        tbnz w3, #-1, addr
3725f4a2713aSLionel Sambuc        tbnz w3, #32, nowhere
3726f4a2713aSLionel Sambuc        tbnz x9, #-1, there
3727f4a2713aSLionel Sambuc        tbnz x20, #64, dont
3728*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31]
3729f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        tbnz w3, #-1, addr
3730f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
3731*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31]
3732f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        tbnz w3, #32, nowhere
3733f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
3734*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 63]
3735f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        tbnz x9, #-1, there
3736f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:                 ^
3737*0a6a1f1dSLionel Sambuc// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 63]
3738f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:        tbnz x20, #64, dont
3739f4a2713aSLionel Sambuc
3740f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
3741f4a2713aSLionel Sambuc// Unconditional branch (immediate)
3742f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
3743f4a2713aSLionel Sambuc
3744f4a2713aSLionel Sambuc        b #134217728
3745f4a2713aSLionel Sambuc        b #-134217732
3746f4a2713aSLionel Sambuc        b #1
3747f4a2713aSLionel Sambuc// CHECK-ERROR: error: expected label or encodable integer pc offset
3748f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         b #134217728
3749f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:           ^
3750f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected label or encodable integer pc offset
3751f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         b #-134217732
3752f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:           ^
3753f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: expected label or encodable integer pc offset
3754f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         b #1
3755f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:           ^
3756f4a2713aSLionel Sambuc
3757f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
3758f4a2713aSLionel Sambuc// Unconditional branch (register)
3759f4a2713aSLionel Sambuc//------------------------------------------------------------------------------
3760f4a2713aSLionel Sambuc
3761f4a2713aSLionel Sambuc        br w2
3762f4a2713aSLionel Sambuc        br sp
3763f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
3764f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         br w2
3765f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:            ^
3766f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
3767f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         br sp
3768f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:            ^
3769f4a2713aSLionel Sambuc
3770f4a2713aSLionel Sambuc        //// These ones shouldn't allow any registers
3771f4a2713aSLionel Sambuc        eret x2
3772f4a2713aSLionel Sambuc        drps x2
3773f4a2713aSLionel Sambuc// CHECK-ERROR: error: invalid operand for instruction
3774f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         eret x2
3775f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
3776f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT: error: invalid operand for instruction
3777f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:         drps x2
3778f4a2713aSLionel Sambuc// CHECK-ERROR-NEXT:              ^
3779f4a2713aSLionel Sambuc
3780