1 // RUN
: llvm-mc
-triple
=arm64-linux-gnu
-o
- < %s | FileCheck
%s
2 // RUN
: llvm-mc
-triple
=arm64-linux-gnu
-show-encoding
-o
- < %s | \
3 // RUN
: FileCheck
--check-prefix
=CHECK-ENCODING
%s
4 // RUN
: llvm-mc
-triple
=arm64-linux-gnu
-filetype
=obj
< %s | \
5 // RUN
: llvm-objdump
--triple
=arm64-linux-gnu
- -r | \
6 // RUN
: FileCheck
%s
--check-prefix
=CHECK-OBJ-LP64
9 add x0
, x2
, #:lo12:sym+12
10 add x0
, x2
, #:lo12:sym-3
11 // CHECK
: add x0
, x2
, :lo12
:sym
12 // CHECK
: add x0
, x2
, :lo12
:sym+
12
13 // CHECK
: add x0
, x2
, :lo12
:sym-
3
14 // CHECK-OBJ-LP64
: 0 R_AARCH64_ADD_ABS_LO12_NC sym
15 // CHECK-OBJ-LP64
: 4 R_AARCH64_ADD_ABS_LO12_NC sym+
0xc
16 // CHECK-OBJ-LP64
: 8 R_AARCH64_ADD_ABS_LO12_NC sym-
0x3
18 add x5
, x7
, #:dtprel_lo12:sym
19 // CHECK
: add x5
, x7
, :dtprel_lo12
:sym
20 // CHECK-OBJ-LP64
: c R_AARCH64_TLSLD_ADD_DTPREL_LO12 sym
22 add x9
, x12
, #:dtprel_lo12_nc:sym
23 // CHECK
: add x9
, x12
, :dtprel_lo12_nc
:sym
24 // CHECK-OBJ-LP64
: 10 R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC sym
26 add x20
, x30
, #:tprel_lo12:sym
27 // CHECK
: add x20
, x30
, :tprel_lo12
:sym
28 // CHECK-OBJ-LP64
: 14 R_AARCH64_TLSLE_ADD_TPREL_LO12 sym
30 add x9
, x12
, #:tprel_lo12_nc:sym
31 // CHECK
: add x9
, x12
, :tprel_lo12_nc
:sym
32 // CHECK-OBJ-LP64
: 18 R_AARCH64_TLSLE_ADD_TPREL_LO12_NC sym
34 add x5
, x0
, #:tlsdesc_lo12:sym
35 // CHECK
: add x5
, x0
, :tlsdesc_lo12
:sym
36 // CHECK-OBJ-LP64
: 1c R_AARCH64_TLSDESC_ADD_LO12 sym
38 add x0
, x2
, #:lo12:sym+8
39 // CHECK
: add x0
, x2
, :lo12
:sym
40 // CHECK-OBJ-LP64
: 20 R_AARCH64_ADD_ABS_LO12_NC sym+
0x8
42 add x5
, x7
, #:dtprel_lo12:sym+1
43 // CHECK
: add x5
, x7
, :dtprel_lo12
:sym+
1
44 // CHECK-OBJ-LP64
: 24 R_AARCH64_TLSLD_ADD_DTPREL_LO12 sym+
0x1
46 add x9
, x12
, #:dtprel_lo12_nc:sym+2
47 // CHECK
: add x9
, x12
, :dtprel_lo12_nc
:sym+
2
48 // CHECK-OBJ-LP64
: 28 R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC sym+
0x2
50 add x20
, x30
, #:tprel_lo12:sym+12
51 // CHECK
: add x20
, x30
, :tprel_lo12
:sym+
12
52 // CHECK-OBJ-LP64
: 2c R_AARCH64_TLSLE_ADD_TPREL_LO12 sym+
0xc
54 add x9
, x12
, #:tprel_lo12_nc:sym+54
55 // CHECK
: add x9
, x12
, :tprel_lo12_nc
:sym+
54
56 // CHECK-OBJ-LP64
: 30 R_AARCH64_TLSLE_ADD_TPREL_LO12_NC sym+
0x36
58 add x5
, x0
, #:tlsdesc_lo12:sym+70
59 // CHECK
: add x5
, x0
, :tlsdesc_lo12
:sym+
70
60 // CHECK-OBJ-LP64
: 34 R_AARCH64_TLSDESC_ADD_LO12 sym+
0x46
63 // CHECK-OBJ-LP64
: 38 R_AARCH64_PREL16 sym+
0x4
65 // CHECK-OBJ-LP64
: 3a R_AARCH64_PREL32 sym+
0x8
67 // CHECK-OBJ-LP64
: 3e R_AARCH64_PREL64 sym
{{$
}}
70 // CHECK-OBJ-LP64
: 46 R_AARCH64_ABS16 sym
72 // CHECK-OBJ-LP64
: 48 R_AARCH64_ABS32 sym+
0x1
74 // CHECK-OBJ-LP64
: 4c R_AARCH64_ABS64 sym+
0x10
77 // CHECK
: adrp x0
, sym
78 // CHECK-OBJ-LP64
: 54 R_AARCH64_ADR_PREL_PG_HI21 sym
81 // CHECK
: adrp x15
, :got
:sym
82 // CHECK-OBJ-LP64
: 58 R_AARCH64_ADR_GOT_PAGE sym
84 adrp x29
, :gottprel
:sym
85 // CHECK
: adrp x29
, :gottprel
:sym
86 // CHECK-OBJ-LP64
: 5c R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 sym
89 // CHECK
: adrp x2
, :tlsdesc
:sym
90 // CHECK-OBJ-LP64
: 60 R_AARCH64_TLSDESC_ADR_PAGE21 sym
92 // LLVM is
not competent enough to do this relocation because the
93 // page boundary could occur anywhere after linking.
A relocation
95 adrp x3
, trickQuestion
98 // CHECK
: adrp x3
, trickQuestion
99 // CHECK-OBJ-LP64
: 64 R_AARCH64_ADR_PREL_PG_HI21 trickQuestion
101 ldrb w2
, [x3
, :lo12
:sym
]
102 ldrsb w5
, [x7
, #:lo12:sym]
103 ldrsb x11
, [x13
, :lo12
:sym
]
104 ldr b17
, [x19
, #:lo12:sym]
105 ldrb w2
, [x3
, :lo12
:sym+
15]
106 ldrsb w5
, [x7
, #:lo12:sym-2]
107 ldr b17
, [x19
, #:lo12:sym+4]
108 // CHECK
: ldrb w2
, [x3
, :lo12
:sym
]
109 // CHECK
: ldrsb w5
, [x7
, :lo12
:sym
]
110 // CHECK
: ldrsb x11
, [x13
, :lo12
:sym
]
111 // CHECK
: ldr b17
, [x19
, :lo12
:sym
]
112 // CHECK
: ldrb w2
, [x3
, :lo12
:sym+
15]
113 // CHECK
: ldrsb w5
, [x7
, :lo12
:sym-
2]
114 // CHECK
: ldr b17
, [x19
, :lo12
:sym+
4]
115 // CHECK-OBJ-LP64
: R_AARCH64_LDST8_ABS_LO12_NC sym
116 // CHECK-OBJ-LP64
: R_AARCH64_LDST8_ABS_LO12_NC sym
117 // CHECK-OBJ-LP64
: R_AARCH64_LDST8_ABS_LO12_NC sym
118 // CHECK-OBJ-LP64
: R_AARCH64_LDST8_ABS_LO12_NC sym
119 // CHECK-OBJ-LP64
: R_AARCH64_LDST8_ABS_LO12_NC sym+
0xf
120 // CHECK-OBJ-LP64
: R_AARCH64_LDST8_ABS_LO12_NC sym-
0x2
121 // CHECK-OBJ-LP64
: R_AARCH64_LDST8_ABS_LO12_NC sym+
0x4
123 ldrb w23
, [x29
, #:dtprel_lo12_nc:sym]
124 ldrsb w23
, [x19
, #:dtprel_lo12:sym]
125 ldrsb x17
, [x13
, :dtprel_lo12_nc
:sym
]
126 ldr b11
, [x7
, #:dtprel_lo12:sym]
127 ldrb w23
, [x29
, #:dtprel_lo12_nc:sym+2]
128 // CHECK
: ldrb w23
, [x29
, :dtprel_lo12_nc
:sym
]
129 // CHECK
: ldrsb w23
, [x19
, :dtprel_lo12
:sym
]
130 // CHECK
: ldrsb x17
, [x13
, :dtprel_lo12_nc
:sym
]
131 // CHECK
: ldr b11
, [x7
, :dtprel_lo12
:sym
]
132 // CHECK
: ldrb w23
, [x29
, :dtprel_lo12_nc
:sym+
2]
133 // CHECK-OBJ-LP64
: R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC sym
134 // CHECK-OBJ-LP64
: R_AARCH64_TLSLD_LDST8_DTPREL_LO12 sym
135 // CHECK-OBJ-LP64
: R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC sym
136 // CHECK-OBJ-LP64
: R_AARCH64_TLSLD_LDST8_DTPREL_LO12 sym
137 // CHECK-OBJ-LP64
: R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC sym+
0x2
139 ldrb w1
, [x2
, :tprel_lo12
:sym
]
140 ldrsb w3
, [x4
, #:tprel_lo12_nc:sym]
141 ldrsb x5
, [x6
, :tprel_lo12
:sym
]
142 ldr b7
, [x8
, #:tprel_lo12_nc:sym]
143 // CHECK
: ldrb w1
, [x2
, :tprel_lo12
:sym
]
144 // CHECK
: ldrsb w3
, [x4
, :tprel_lo12_nc
:sym
]
145 // CHECK
: ldrsb x5
, [x6
, :tprel_lo12
:sym
]
146 // CHECK
: ldr b7
, [x8
, :tprel_lo12_nc
:sym
]
147 // CHECK-OBJ-LP64
: R_AARCH64_TLSLE_LDST8_TPREL_LO12 sym
148 // CHECK-OBJ-LP64
: R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC sym
149 // CHECK-OBJ-LP64
: R_AARCH64_TLSLE_LDST8_TPREL_LO12 sym
150 // CHECK-OBJ-LP64
: R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC sym
152 ldrh w2
, [x3
, #:lo12:sym]
153 ldrsh w5
, [x7
, :lo12
:sym
]
154 ldrsh x11
, [x13
, #:lo12:sym]
155 ldr h17
, [x19
, :lo12
:sym
]
156 ldrh w2
, [x3
, #:lo12:sym+4]
157 // CHECK
: ldrh w2
, [x3
, :lo12
:sym
]
158 // CHECK
: ldrsh w5
, [x7
, :lo12
:sym
]
159 // CHECK
: ldrsh x11
, [x13
, :lo12
:sym
]
160 // CHECK
: ldr h17
, [x19
, :lo12
:sym
]
161 // CHECK
: ldrh w2
, [x3
, :lo12
:sym+
4]
162 // CHECK-OBJ-LP64
: R_AARCH64_LDST16_ABS_LO12_NC sym
163 // CHECK-OBJ-LP64
: R_AARCH64_LDST16_ABS_LO12_NC sym
164 // CHECK-OBJ-LP64
: R_AARCH64_LDST16_ABS_LO12_NC sym
165 // CHECK-OBJ-LP64
: R_AARCH64_LDST16_ABS_LO12_NC sym
166 // CHECK-OBJ-LP64
: R_AARCH64_LDST16_ABS_LO12_NC sym+
0x4
168 ldrh w23
, [x29
, #:dtprel_lo12_nc:sym]
169 ldrsh w23
, [x19
, :dtprel_lo12
:sym
]
170 ldrsh x17
, [x13
, :dtprel_lo12_nc
:sym
]
171 ldr h11
, [x7
, #:dtprel_lo12:sym]
172 // CHECK
: ldrh w23
, [x29
, :dtprel_lo12_nc
:sym
]
173 // CHECK
: ldrsh w23
, [x19
, :dtprel_lo12
:sym
]
174 // CHECK
: ldrsh x17
, [x13
, :dtprel_lo12_nc
:sym
]
175 // CHECK
: ldr h11
, [x7
, :dtprel_lo12
:sym
]
176 // CHECK-OBJ-LP64
: R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC sym
177 // CHECK-OBJ-LP64
: R_AARCH64_TLSLD_LDST16_DTPREL_LO12 sym
178 // CHECK-OBJ-LP64
: R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC sym
179 // CHECK-OBJ-LP64
: R_AARCH64_TLSLD_LDST16_DTPREL_LO12 sym
181 ldrh w1
, [x2
, :tprel_lo12
:sym
]
182 ldrsh w3
, [x4
, #:tprel_lo12_nc:sym]
183 ldrsh x5
, [x6
, :tprel_lo12
:sym
]
184 ldr h7
, [x8
, #:tprel_lo12_nc:sym]
185 // CHECK
: ldrh w1
, [x2
, :tprel_lo12
:sym
]
186 // CHECK
: ldrsh w3
, [x4
, :tprel_lo12_nc
:sym
]
187 // CHECK
: ldrsh x5
, [x6
, :tprel_lo12
:sym
]
188 // CHECK
: ldr h7
, [x8
, :tprel_lo12_nc
:sym
]
189 // CHECK-OBJ-LP64
: R_AARCH64_TLSLE_LDST16_TPREL_LO12 sym
190 // CHECK-OBJ-LP64
: R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC sym
191 // CHECK-OBJ-LP64
: R_AARCH64_TLSLE_LDST16_TPREL_LO12 sym
192 // CHECK-OBJ-LP64
: R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC sym
194 ldr w1
, [x2
, #:lo12:sym]
195 ldrsw x3
, [x4
, #:lo12:sym]
196 ldr s4
, [x5
, :lo12
:sym
]
197 // CHECK
: ldr w1
, [x2
, :lo12
:sym
]
198 // CHECK
: ldrsw x3
, [x4
, :lo12
:sym
]
199 // CHECK
: ldr s4
, [x5
, :lo12
:sym
]
200 // CHECK-OBJ-LP64
: R_AARCH64_LDST32_ABS_LO12_NC sym
201 // CHECK-OBJ-LP64
: R_AARCH64_LDST32_ABS_LO12_NC sym
202 // CHECK-OBJ-LP64
: R_AARCH64_LDST32_ABS_LO12_NC sym
204 ldr w1
, [x2
, :dtprel_lo12
:sym
]
205 ldrsw x3
, [x4
, #:dtprel_lo12_nc:sym]
206 ldr s4
, [x5
, #:dtprel_lo12_nc:sym]
207 // CHECK
: ldr w1
, [x2
, :dtprel_lo12
:sym
]
208 // CHECK
: ldrsw x3
, [x4
, :dtprel_lo12_nc
:sym
]
209 // CHECK
: ldr s4
, [x5
, :dtprel_lo12_nc
:sym
]
210 // CHECK-OBJ-LP64
: R_AARCH64_TLSLD_LDST32_DTPREL_LO12 sym
211 // CHECK-OBJ-LP64
: R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC sym
212 // CHECK-OBJ-LP64
: R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC sym
215 ldr w1
, [x2
, #:tprel_lo12:sym]
216 ldrsw x3
, [x4
, :tprel_lo12_nc
:sym
]
217 ldr s4
, [x5
, :tprel_lo12_nc
:sym
]
218 // CHECK
: ldr w1
, [x2
, :tprel_lo12
:sym
]
219 // CHECK
: ldrsw x3
, [x4
, :tprel_lo12_nc
:sym
]
220 // CHECK
: ldr s4
, [x5
, :tprel_lo12_nc
:sym
]
221 // CHECK-OBJ-LP64
: R_AARCH64_TLSLE_LDST32_TPREL_LO12 sym
222 // CHECK-OBJ-LP64
: R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC sym
223 // CHECK-OBJ-LP64
: R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC sym
225 ldr x28
, [x27
, :lo12
:sym
]
226 ldr d26
, [x25
, #:lo12:sym]
227 ldr x28
, [x27
, :lo12
:sym+
10]
228 ldr x28
, [x27
, :lo12
:sym-
15]
229 // CHECK
: ldr x28
, [x27
, :lo12
:sym
]
230 // CHECK
: ldr d26
, [x25
, :lo12
:sym
]
231 // CHECK
: ldr x28
, [x27
, :lo12
:sym+
10]
232 // CHECK
: ldr x28
, [x27
, :lo12
:sym-
15]
233 // CHECK-OBJ-LP64
: R_AARCH64_LDST64_ABS_LO12_NC sym
234 // CHECK-OBJ-LP64
: R_AARCH64_LDST64_ABS_LO12_NC sym
235 // CHECK-OBJ-LP64
: R_AARCH64_LDST64_ABS_LO12_NC sym+
0xa
236 // CHECK-OBJ-LP64
: R_AARCH64_LDST64_ABS_LO12_NC sym-
0xf
238 ldr x24
, [x23
, #:got_lo12:sym]
239 ldr d22
, [x21
, :got_lo12
:sym
]
240 ldr x24
, [x23
, :got_lo12
:sym+
7]
241 // CHECK
: ldr x24
, [x23
, :got_lo12
:sym
]
242 // CHECK
: ldr d22
, [x21
, :got_lo12
:sym
]
243 // CHECK
: ldr x24
, [x23
, :got_lo12
:sym+
7]
244 // CHECK-OBJ-LP64
: R_AARCH64_LD64_GOT_LO12_NC sym
245 // CHECK-OBJ-LP64
: R_AARCH64_LD64_GOT_LO12_NC sym
246 // CHECK-OBJ-LP64
: R_AARCH64_LD64_GOT_LO12_NC sym+
0x7
248 ldr x24
, [x23
, #:gotpage_lo15:sym]
249 ldr d22
, [x21
, :gotpage_lo15
:sym
]
250 ldr d22
, [x23
, :gotpage_lo15
:sym+
7]
251 // CHECK
: ldr x24
, [x23
, :gotpage_lo15
:sym
]
252 // CHECK
: ldr d22
, [x21
, :gotpage_lo15
:sym
]
253 // CHECK
: ldr d22
, [x23
, :gotpage_lo15
:sym+
7]
254 // CHECK-OBJ-LP64
: R_AARCH64_LD64_GOTPAGE_LO15 sym
{{$
}}
255 // CHECK-OBJ-LP64
: R_AARCH64_LD64_GOTPAGE_LO15 sym
{{$
}}
256 // CHECK-OBJ-LP64
: R_AARCH64_LD64_GOTPAGE_LO15 sym+
0x7
258 ldr x24
, [x23
, :dtprel_lo12_nc
:sym
]
259 ldr d22
, [x21
, #:dtprel_lo12:sym]
260 // CHECK
: ldr x24
, [x23
, :dtprel_lo12_nc
:sym
]
261 // CHECK
: ldr d22
, [x21
, :dtprel_lo12
:sym
]
262 // CHECK-OBJ-LP64
: R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC sym
263 // CHECK-OBJ-LP64
: R_AARCH64_TLSLD_LDST64_DTPREL_LO12 sym
265 ldr q24
, [x23
, :dtprel_lo12_nc
:sym
]
266 ldr q22
, [x21
, #:dtprel_lo12:sym]
267 // CHECK
: ldr q24
, [x23
, :dtprel_lo12_nc
:sym
]
268 // CHECK
: ldr q22
, [x21
, :dtprel_lo12
:sym
]
269 // CHECK-OBJ-LP64
: R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC sym
270 // CHECK-OBJ-LP64
: R_AARCH64_TLSLD_LDST128_DTPREL_LO12 sym
272 ldr x24
, [x23
, #:tprel_lo12:sym]
273 ldr d22
, [x21
, :tprel_lo12_nc
:sym
]
274 // CHECK
: ldr x24
, [x23
, :tprel_lo12
:sym
]
275 // CHECK
: ldr d22
, [x21
, :tprel_lo12_nc
:sym
]
276 // CHECK-OBJ-LP64
: R_AARCH64_TLSLE_LDST64_TPREL_LO12 sym
277 // CHECK-OBJ-LP64
: R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC sym
279 ldr q24
, [x23
, #:tprel_lo12:sym]
280 ldr q22
, [x21
, :tprel_lo12_nc
:sym
]
281 // CHECK
: ldr q24
, [x23
, :tprel_lo12
:sym
]
282 // CHECK
: ldr q22
, [x21
, :tprel_lo12_nc
:sym
]
283 // CHECK-OBJ-LP64
: R_AARCH64_TLSLE_LDST128_TPREL_LO12 sym
284 // CHECK-OBJ-LP64
: R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC sym
286 ldr x24
, [x23
, :gottprel_lo12
:sym
]
287 ldr d22
, [x21
, #:gottprel_lo12:sym]
288 // CHECK
: ldr x24
, [x23
, :gottprel_lo12
:sym
]
289 // CHECK
: ldr d22
, [x21
, :gottprel_lo12
:sym
]
290 // CHECK-OBJ-LP64
: R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC sym
291 // CHECK-OBJ-LP64
: R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC sym
293 ldr x24
, [x23
, #:tlsdesc_lo12:sym]
294 ldr d22
, [x21
, :tlsdesc_lo12
:sym
]
295 // CHECK
: ldr x24
, [x23
, :tlsdesc_lo12
:sym
]
296 // CHECK
: ldr d22
, [x21
, :tlsdesc_lo12
:sym
]
297 // CHECK-OBJ-LP64
: R_AARCH64_TLSDESC_LD64_LO12 sym
298 // CHECK-OBJ-LP64
: R_AARCH64_TLSDESC_LD64_LO12 sym
300 ldr q20
, [x19
, #:lo12:sym]
301 // CHECK
: ldr q20
, [x19
, :lo12
:sym
]
302 // CHECK-OBJ-LP64
: R_AARCH64_LDST128_ABS_LO12_NC sym
303 // check encoding here
, since encoding test doesn
't belong with TLS encoding
304 // tests, as it isn't a TLS relocation.
305 // CHECK-ENCODING
: ldr q20
, [x19
, :lo12
:sym
] // encoding
: [0x74,0bAAAAAA10
,0b11AAAAAA
,0x3d]
306 // CHECK-ENCODING-NEXT
: 0, value
: :lo12
:sym
, kind
: fixup_aarch64_ldst_imm12_scale16
308 // Since relocated instructions print without
a '#', that syntax should
309 // certainly
be accepted when assembling.
310 add x3
, x5
, :lo12
:imm
311 // CHECK
: add x3
, x5
, :lo12
:imm
315 // CHECK
: ldr x24
, :got
:sym
316 // CHECK
: ldr d22
, :got
:sym
317 // CHECK-OBJ-LP64
: R_AARCH64_GOT_LD_PREL19 sym
318 // CHECK-OBJ-LP64
: R_AARCH64_GOT_LD_PREL19 sym
320 // GOT relocations referencing local symbols are
not converted to reference
321 // STT_SECTION symbols. https
://github.com
/llvm
/llvm-project
/issues
/63418
322 ldr x0
, [x0
, :got_lo12
:local0
]
323 ldr x1
, [x1
, :got_lo12
:local1
]
324 ldr x2
, [x2
, :gotpage_lo15
:local2
]
326 // CHECK
: ldr x0
, [x0
, :got_lo12
:local0
]
327 // CHECK-NEXT
: ldr x1
, [x1
, :got_lo12
:local1
]
328 // CHECK-NEXT
: ldr x2
, [x2
, :gotpage_lo15
:local2
]
329 // CHECK-NEXT
: adrp x3
, :got
:local3
330 // CHECK-OBJ-LP64
: R_AARCH64_LD64_GOT_LO12_NC local0
{{$
}}
331 // CHECK-OBJ-LP64-NEXT
: R_AARCH64_LD64_GOT_LO12_NC local1
{{$
}}
332 // CHECK-OBJ-LP64-NEXT
: R_AARCH64_LD64_GOTPAGE_LO15 local2
{{$
}}
333 // CHECK-OBJ-LP64-NEXT
: R_AARCH64_ADR_GOT_PAGE local3
{{$
}}