1 // RUN
: not llvm-mc
-triple
=aarch64
-filetype
=obj
-show-encoding
-mattr
=+cmpbr
2>&1 < %s | FileCheck
%s
3 //------------------------------------------------------------------------------
9 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
10 // CHECK-NEXT
: cbgt x5
, x5
, #-1025
11 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
14 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
15 // CHECK-NEXT
: cbgt w5
, w5
, #1021
16 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
19 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
20 // CHECK-NEXT
: cbgt w5
, #20, #-1025
21 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
24 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
25 // CHECK-NEXT
: cbgt x5
, #20, #1021
26 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
31 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
32 // CHECK-NEXT
: cblt x5
, #20, #-1025
33 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
36 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
37 // CHECK-NEXT
: cblt w5
, #20, #1021
38 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
43 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
44 // CHECK-NEXT
: cbge x5
, x5
, #-1025
45 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
48 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
49 // CHECK-NEXT
: cbge w5
, w5
, #1021
50 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
55 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
56 // CHECK-NEXT
: cbhi x2
, x2
, #-1025
57 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
60 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
61 // CHECK-NEXT
: cbhi w2
, w2
, #1021
62 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
65 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
66 // CHECK-NEXT
: cbhi w2
, #20, #-1025
67 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
70 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
71 // CHECK-NEXT
: cbhi x2
, #20, #1021
72 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
77 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
78 // CHECK-NEXT
: cblo w5
, #20, #-1025
79 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
82 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
83 // CHECK-NEXT
: cblo x5
, #20, #1021
84 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
89 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
90 // CHECK-NEXT
: cbhs x2
, x2
, #-1025
91 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
94 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
95 // CHECK-NEXT
: cbhs w2
, w2
, #1021
96 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
101 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
102 // CHECK-NEXT
: cbeq x5
, x5
, #-1025
103 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}
106 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
107 // CHECK-NEXT
: cbeq w5
, w5
, #1021
108 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}
111 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
112 // CHECK-NEXT
: cbeq w5
, #20, #-1025
113 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}
116 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
117 // CHECK-NEXT
: cbeq x5
, #20, #1021
118 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}
123 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
124 // CHECK-NEXT
: cbne w5
, w5
, #-1025
125 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}
128 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
129 // CHECK-NEXT
: cbne x5
, x5
, #1021
130 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}
133 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
134 // CHECK-NEXT
: cbne x5
, #20, #-1025
135 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}
138 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
139 // CHECK-NEXT
: cbne w5
, #20, #1021
140 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}
145 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
146 // CHECK-NEXT
: cbhgt w5
, w5
, #-1025
147 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
150 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
151 // CHECK-NEXT
: cbhgt w5
, w5
, #1021
152 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
157 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
158 // CHECK-NEXT
: cbhge w5
, w5
, #-1025
159 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
162 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
163 // CHECK-NEXT
: cbhge w5
, w5
, #1021
164 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
169 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
170 // CHECK-NEXT
: cbhhi w5
, w5
, #-1025
171 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
174 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
175 // CHECK-NEXT
: cbhhi w5
, w5
, #1021
176 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
181 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
182 // CHECK-NEXT
: cbhhs w5
, w5
, #-1025
183 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
186 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
187 // CHECK-NEXT
: cbhhs w5
, w5
, #1021
188 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
193 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
194 // CHECK-NEXT
: cbheq w5
, w5
, #-1025
195 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
198 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
199 // CHECK-NEXT
: cbheq w5
, w5
, #1021
200 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
205 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
206 // CHECK-NEXT
: cbhne w5
, w5
, #-1025
207 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
210 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
211 // CHECK-NEXT
: cbhne w5
, w5
, #1021
212 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
217 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
218 // CHECK-NEXT
: cbbgt w5
, w5
, #-1025
219 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
222 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
223 // CHECK-NEXT
: cbbgt w5
, w5
, #1021
224 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
229 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
230 // CHECK-NEXT
: cbbge w5
, w5
, #-1025
231 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
234 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
235 // CHECK-NEXT
: cbbge w5
, w5
, #1021
236 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
241 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
242 // CHECK-NEXT
: cbbhi w5
, w5
, #-1025
243 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
246 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
247 // CHECK-NEXT
: cbbhi w5
, w5
, #1021
248 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
253 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
254 // CHECK-NEXT
: cbbhs w5
, w5
, #-1025
255 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
258 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
259 // CHECK-NEXT
: cbbhs w5
, w5
, #1021
260 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
265 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
266 // CHECK-NEXT
: cbbeq w5
, w5
, #-1025
267 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
270 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
271 // CHECK-NEXT
: cbbeq w5
, w5
, #1021
272 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
277 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
278 // CHECK-NEXT
: cbbne w5
, w5
, #-1025
279 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
282 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expected label
or encodable integer pc offset
283 // CHECK-NEXT
: cbbne w5
, w5
, #1021
284 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
287 //------------------------------------------------------------------------------
288 // Incorrect Operands
293 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
294 // CHECK-NEXT
: cbhgt w5
, #20, #1020
295 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
298 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
299 // CHECK-NEXT
: cbhgt x5
, x5
, #1020
300 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
305 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
306 // CHECK-NEXT
: cbhge w5
, #20, #1020
307 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
310 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
311 // CHECK-NEXT
: cbhge x5
, x5
, #1020
312 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
317 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
318 // CHECK-NEXT
: cbhhi w5
, #20, #1020
319 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
322 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
323 // CHECK-NEXT
: cbhhi x5
, x5
, #1020
324 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
329 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
330 // CHECK-NEXT
: cbhhs w5
, #20, #1020
331 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
334 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
335 // CHECK-NEXT
: cbhhs x5
, x5
, #1020
336 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
341 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
342 // CHECK-NEXT
: cbheq w5
, #20, #1020
343 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
346 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
347 // CHECK-NEXT
: cbheq x5
, x5
, #1020
348 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
353 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
354 // CHECK-NEXT
: cbhne w5
, #20, #1020
355 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
358 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
359 // CHECK-NEXT
: cbhne x5
, x5
, #1020
360 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
365 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
366 // CHECK-NEXT
: cbbgt w5
, #20, #1020
367 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
370 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
371 // CHECK-NEXT
: cbbgt x5
, x5
, #1020
372 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
377 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
378 // CHECK-NEXT
: cbbge w5
, #20, #1020
379 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
382 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
383 // CHECK-NEXT
: cbbge x5
, x5
, #1020
384 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
389 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
390 // CHECK-NEXT
: cbbhi w5
, #20, #1020
391 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
394 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
395 // CHECK-NEXT
: cbbhi x5
, x5
, #1020
396 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
401 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
402 // CHECK-NEXT
: cbbhs w5
, #20, #1020
403 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
406 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
407 // CHECK-NEXT
: cbbhs x5
, x5
, #1020
408 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
413 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
414 // CHECK-NEXT
: cbbeq w5
, #20, #1020
415 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
418 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
419 // CHECK-NEXT
: cbbeq x5
, x5
, #1020
420 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
425 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
426 // CHECK-NEXT
: bbne w5
, #20, #1020
427 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
430 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
431 // CHECK-NEXT
: bbne x5
, x5
, #1020
432 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
434 //------------------------------------------------------------------------------
435 // (Immediate
) compare value out-of-range
440 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: immediate must
be an integer in range
[0, 63].
441 // CHECK-NEXT
: cbgt w5
, #-1, #1020
442 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
445 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: immediate must
be an integer in range
[0, 63].
446 // CHECK-NEXT
: cbgt w5
, #64, #1020
447 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
452 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: immediate must
be an integer in range
[0, 63].
453 // CHECK-NEXT
: cblt w5
, #-1, #1020
454 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
457 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: immediate must
be an integer in range
[0, 63].
458 // CHECK-NEXT
: cblt w5
, #64, #1020
459 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
464 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: immediate must
be an integer in range
[0, 63].
465 // CHECK-NEXT
: cbhi w5
, #-1, #1020
466 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
469 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: immediate must
be an integer in range
[0, 63].
470 // CHECK-NEXT
: cbhi w5
, #64, #1020
471 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
476 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: immediate must
be an integer in range
[0, 63].
477 // CHECK-NEXT
: cblo w5
, #-1, #1020
478 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
481 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: immediate must
be an integer in range
[0, 63].
482 // CHECK-NEXT
: cblo w5
, #64, #1020
483 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
488 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: immediate must
be an integer in range
[0, 63].
489 // CHECK-NEXT
: cbeq w5
, #-1, #1020
490 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
493 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: immediate must
be an integer in range
[0, 63].
494 // CHECK-NEXT
: cbeq x5
, #64, #1020
495 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
500 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: immediate must
be an integer in range
[0, 63].
501 // CHECK-NEXT
: cbne x5
, #-1, #1020
502 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}:
505 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: immediate must
be an integer in range
[0, 63].
506 // CHECK-NEXT
: cbne w5
, #64, #1020
507 // CHECK-
NOT: [[@LINE-
3]]:{{[0-9]+}}: