]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/MC/AArch64/shift_extend_op_w_symbol.s
Vendor import of llvm trunk r351319 (just before the release_80 branch
[FreeBSD/FreeBSD.git] / test / MC / AArch64 / shift_extend_op_w_symbol.s
1 // RUN: not llvm-mc -triple aarch64-none-linux-gnu < %s > %t1 2> %t2
2 // RUN: FileCheck < %t1 %s
3 // RUN: FileCheck --check-prefix=CHECK-ERROR < %t2 %s
4
5         .globl _func
6 _func:
7 // CHECK-LABEL: _func
8
9         .set IMM2, 2
10         .equ IMM4, 4
11
12 // Make sure we can use a symbol with the optionally shift left operand.
13
14         add w1, w2, w3, uxtb #IMM2
15         add w4, w5, w6, uxth #IMM4
16         add x7, x8, x9, lsl #IMM2
17         add w7, w8, w9, uxtw #IMM4
18         add x1, x2, x3, uxtx #IMM4
19
20 // CHECK: add w1, w2, w3, uxtb #2
21 // CHECK: add w4, w5, w6, uxth #4
22 // CHECK: add x7, x8, x9, lsl #2
23 // CHECK: add w7, w8, w9, uxtw #4
24 // CHECK: add x1, x2, x3, uxtx #4
25
26         add w1, w2, w3, sxtb #IMM2
27         add w4, w5, w6, sxth #IMM4
28         add x7, x8, x9, lsl #IMM2
29         add w7, w8, w9, sxtw #IMM2
30         add x1, x2, x3, sxtx #IMM4
31
32 // CHECK: add w1, w2, w3, sxtb #2
33 // CHECK: add w4, w5, w6, sxth #4
34 // CHECK: add x7, x8, x9, lsl #2
35 // CHECK: add w7, w8, w9, sxtw #2
36 // CHECK: add x1, x2, x3, sxtx #4
37
38         add w1, w2, w3, lsl #IMM3
39
40 // CHECK-ERROR: error: expected constant '#imm' after shift specifier
41 // CHECK-ERROR:        add w1, w2, w3, lsl #IMM3
42 // CHECK-ERROR:                             ^