1 // RUN: llvm-mc -arch=aarch64 -filetype=obj %s -o - | \
2 // RUN: elf-dump | FileCheck -check-prefix=OBJ %s
4 movz x0, #:abs_g0:some_label
5 movk x0, #:abs_g0_nc:some_label
7 movz x3, #:abs_g1:some_label
8 movk x5, #:abs_g1_nc:some_label
10 movz x3, #:abs_g2:some_label
11 movk x5, #:abs_g2_nc:some_label
13 movz x7, #:abs_g3:some_label
14 movk x11, #:abs_g3:some_label
16 movz x13, #:abs_g0_s:some_label
17 movn x17, #:abs_g0_s:some_label
19 movz x19, #:abs_g1_s:some_label
20 movn x19, #:abs_g1_s:some_label
22 movz x19, #:abs_g2_s:some_label
23 movn x19, #:abs_g2_s:some_label
26 // :abs_g0: => R_AARCH64_MOVW_UABS_G0
27 // OBJ: 'r_offset', 0x0000000000000000
28 // OBJ: 'r_sym', 0x00000005
29 // OBJ-NEXT: 'r_type', 0x00000107
31 // :abs_g0_nc: => R_AARCH64_MOVW_UABS_G0_NC
32 // OBJ: 'r_offset', 0x0000000000000004
33 // OBJ: 'r_sym', 0x00000005
34 // OBJ-NEXT: 'r_type', 0x00000108
36 // :abs_g1: => R_AARCH64_MOVW_UABS_G1
37 // OBJ: 'r_offset', 0x0000000000000008
38 // OBJ: 'r_sym', 0x00000005
39 // OBJ-NEXT: 'r_type', 0x00000109
41 // :abs_g1_nc: => R_AARCH64_MOVW_UABS_G1_NC
42 // OBJ: 'r_offset', 0x000000000000000c
43 // OBJ: 'r_sym', 0x00000005
44 // OBJ-NEXT: 'r_type', 0x0000010a
46 // :abs_g2: => R_AARCH64_MOVW_UABS_G2
47 // OBJ: 'r_offset', 0x0000000000000010
48 // OBJ: 'r_sym', 0x00000005
49 // OBJ-NEXT: 'r_type', 0x0000010b
51 // :abs_g2_nc: => R_AARCH64_MOVW_UABS_G2_NC
52 // OBJ: 'r_offset', 0x0000000000000014
53 // OBJ: 'r_sym', 0x00000005
54 // OBJ-NEXT: 'r_type', 0x0000010c
56 // :abs_g3: => R_AARCH64_MOVW_UABS_G3
57 // OBJ: 'r_offset', 0x0000000000000018
58 // OBJ: 'r_sym', 0x00000005
59 // OBJ-NEXT: 'r_type', 0x0000010d
61 // :abs_g3: => R_AARCH64_MOVW_UABS_G3
62 // OBJ: 'r_offset', 0x000000000000001c
63 // OBJ: 'r_sym', 0x00000005
64 // OBJ-NEXT: 'r_type', 0x0000010d
66 // :abs_g0_s: => R_AARCH64_MOVW_SABS_G0
67 // OBJ: 'r_offset', 0x0000000000000020
68 // OBJ: 'r_sym', 0x00000005
69 // OBJ-NEXT: 'r_type', 0x0000010e
71 // :abs_g0_s: => R_AARCH64_MOVW_SABS_G0
72 // OBJ: 'r_offset', 0x0000000000000024
73 // OBJ: 'r_sym', 0x00000005
74 // OBJ-NEXT: 'r_type', 0x0000010e
76 // :abs_g1_s: => R_AARCH64_MOVW_SABS_G1
77 // OBJ: 'r_offset', 0x0000000000000028
78 // OBJ: 'r_sym', 0x00000005
79 // OBJ-NEXT: 'r_type', 0x0000010f
81 // :abs_g1_s: => R_AARCH64_MOVW_SABS_G1
82 // OBJ: 'r_offset', 0x000000000000002c
83 // OBJ: 'r_sym', 0x00000005
84 // OBJ-NEXT: 'r_type', 0x0000010f
86 // :abs_g2_s: => R_AARCH64_MOVW_SABS_G2
87 // OBJ: 'r_offset', 0x0000000000000030
88 // OBJ: 'r_sym', 0x00000005
89 // OBJ-NEXT: 'r_type', 0x00000110
91 // :abs_g2_s: => R_AARCH64_MOVW_SABS_G2
92 // OBJ: 'r_offset', 0x0000000000000034
93 // OBJ: 'r_sym', 0x00000005
94 // OBJ-NEXT: 'r_type', 0x00000110
98 // OBJ-NEXT: some_label