10
10
@ptr = external local_unnamed_addr global ptr , align 8
11
11
12
12
define dso_preemptable void @foo1 () {
13
- ; CHECK-LABEL: foo1:
14
- ; CHECK: // %bb.0: // %entry
15
- ; CHECK-NEXT: ldr x8, :got:src
16
- ; CHECK-NEXT: ldrb w8, [x8]
17
- ; CHECK-NEXT: ldr x9, :got:dst
18
- ; CHECK-NEXT: strb w8, [x9]
19
- ; CHECK-NEXT: ret
20
- ;
21
- ; CHECK-GLOBISEL-LABEL: foo1:
22
- ; CHECK-GLOBISEL: // %bb.0: // %entry
23
- ; CHECK-GLOBISEL-NEXT: ldr x8, :got:src
24
- ; CHECK-GLOBISEL-NEXT: ldrb w8, [x8]
25
- ; CHECK-GLOBISEL-NEXT: ldr x9, :got:dst
26
- ; CHECK-GLOBISEL-NEXT: strb w8, [x9]
27
- ; CHECK-GLOBISEL-NEXT: ret
28
- ;
29
13
; CHECK-PIC-LABEL: foo1:
30
14
; CHECK-PIC: // %bb.0: // %entry
31
15
; CHECK-PIC-NEXT: ldr x8, :got:src
@@ -48,20 +32,6 @@ entry:
48
32
}
49
33
50
34
define dso_preemptable void @foo2 () {
51
- ; CHECK-LABEL: foo2:
52
- ; CHECK: // %bb.0: // %entry
53
- ; CHECK-NEXT: ldr x8, :got:ptr
54
- ; CHECK-NEXT: ldr x9, :got:dst
55
- ; CHECK-NEXT: str x9, [x8]
56
- ; CHECK-NEXT: ret
57
- ;
58
- ; CHECK-GLOBISEL-LABEL: foo2:
59
- ; CHECK-GLOBISEL: // %bb.0: // %entry
60
- ; CHECK-GLOBISEL-NEXT: ldr x8, :got:ptr
61
- ; CHECK-GLOBISEL-NEXT: ldr x9, :got:dst
62
- ; CHECK-GLOBISEL-NEXT: str x9, [x8]
63
- ; CHECK-GLOBISEL-NEXT: ret
64
- ;
65
35
; CHECK-PIC-LABEL: foo2:
66
36
; CHECK-PIC: // %bb.0: // %entry
67
37
; CHECK-PIC-NEXT: ldr x8, :got:ptr
@@ -83,24 +53,6 @@ entry:
83
53
define dso_preemptable void @foo3 () {
84
54
; FIXME: Needn't adr ptr
85
55
;
86
- ; CHECK-LABEL: foo3:
87
- ; CHECK: // %bb.0: // %entry
88
- ; CHECK-NEXT: ldr x8, :got:src
89
- ; CHECK-NEXT: ldr x9, :got:ptr
90
- ; CHECK-NEXT: ldrb w8, [x8]
91
- ; CHECK-NEXT: ldr x9, [x9]
92
- ; CHECK-NEXT: strb w8, [x9]
93
- ; CHECK-NEXT: ret
94
- ;
95
- ; CHECK-GLOBISEL-LABEL: foo3:
96
- ; CHECK-GLOBISEL: // %bb.0: // %entry
97
- ; CHECK-GLOBISEL-NEXT: ldr x8, :got:src
98
- ; CHECK-GLOBISEL-NEXT: ldr x9, :got:ptr
99
- ; CHECK-GLOBISEL-NEXT: ldrb w8, [x8]
100
- ; CHECK-GLOBISEL-NEXT: ldr x9, [x9]
101
- ; CHECK-GLOBISEL-NEXT: strb w8, [x9]
102
- ; CHECK-GLOBISEL-NEXT: ret
103
- ;
104
56
; CHECK-PIC-LABEL: foo3:
105
57
; CHECK-PIC: // %bb.0: // %entry
106
58
; CHECK-PIC-NEXT: ldr x8, :got:src
@@ -130,22 +82,6 @@ entry:
130
82
@lptr = internal global ptr null , align 8
131
83
132
84
define dso_preemptable void @bar1 () {
133
- ; CHECK-LABEL: bar1:
134
- ; CHECK: // %bb.0: // %entry
135
- ; CHECK-NEXT: adr x8, lsrc
136
- ; CHECK-NEXT: ldrb w8, [x8]
137
- ; CHECK-NEXT: adr x9, ldst
138
- ; CHECK-NEXT: strb w8, [x9]
139
- ; CHECK-NEXT: ret
140
- ;
141
- ; CHECK-GLOBISEL-LABEL: bar1:
142
- ; CHECK-GLOBISEL: // %bb.0: // %entry
143
- ; CHECK-GLOBISEL-NEXT: adr x8, lsrc
144
- ; CHECK-GLOBISEL-NEXT: ldrb w8, [x8]
145
- ; CHECK-GLOBISEL-NEXT: adr x9, ldst
146
- ; CHECK-GLOBISEL-NEXT: strb w8, [x9]
147
- ; CHECK-GLOBISEL-NEXT: ret
148
- ;
149
85
; CHECK-PIC-LABEL: bar1:
150
86
; CHECK-PIC: // %bb.0: // %entry
151
87
; CHECK-PIC-NEXT: adr x8, lsrc
@@ -168,20 +104,6 @@ entry:
168
104
}
169
105
170
106
define dso_preemptable void @bar2 () {
171
- ; CHECK-LABEL: bar2:
172
- ; CHECK: // %bb.0: // %entry
173
- ; CHECK-NEXT: adr x8, lptr
174
- ; CHECK-NEXT: adr x9, ldst
175
- ; CHECK-NEXT: str x9, [x8]
176
- ; CHECK-NEXT: ret
177
- ;
178
- ; CHECK-GLOBISEL-LABEL: bar2:
179
- ; CHECK-GLOBISEL: // %bb.0: // %entry
180
- ; CHECK-GLOBISEL-NEXT: adr x8, lptr
181
- ; CHECK-GLOBISEL-NEXT: adr x9, ldst
182
- ; CHECK-GLOBISEL-NEXT: str x9, [x8]
183
- ; CHECK-GLOBISEL-NEXT: ret
184
- ;
185
107
; CHECK-PIC-LABEL: bar2:
186
108
; CHECK-PIC: // %bb.0: // %entry
187
109
; CHECK-PIC-NEXT: adr x8, lptr
@@ -203,23 +125,6 @@ entry:
203
125
define dso_preemptable void @bar3 () {
204
126
; FIXME: Needn't adr lptr
205
127
;
206
- ; CHECK-LABEL: bar3:
207
- ; CHECK: // %bb.0: // %entry
208
- ; CHECK-NEXT: adr x8, lsrc
209
- ; CHECK-NEXT: ldrb w8, [x8]
210
- ; CHECK-NEXT: ldr x9, lptr
211
- ; CHECK-NEXT: strb w8, [x9]
212
- ; CHECK-NEXT: ret
213
- ;
214
- ; CHECK-GLOBISEL-LABEL: bar3:
215
- ; CHECK-GLOBISEL: // %bb.0: // %entry
216
- ; CHECK-GLOBISEL-NEXT: adr x8, lsrc
217
- ; CHECK-GLOBISEL-NEXT: adr x9, lptr
218
- ; CHECK-GLOBISEL-NEXT: ldrb w8, [x8]
219
- ; CHECK-GLOBISEL-NEXT: ldr x9, [x9]
220
- ; CHECK-GLOBISEL-NEXT: strb w8, [x9]
221
- ; CHECK-GLOBISEL-NEXT: ret
222
- ;
223
128
; CHECK-PIC-LABEL: bar3:
224
129
; CHECK-PIC: // %bb.0: // %entry
225
130
; CHECK-PIC-NEXT: adr x8, lsrc
@@ -248,22 +153,6 @@ entry:
248
153
@lbdst = internal global [65536 x i8 ] zeroinitializer , align 4
249
154
250
155
define dso_preemptable void @baz1 () {
251
- ; CHECK-LABEL: baz1:
252
- ; CHECK: // %bb.0: // %entry
253
- ; CHECK-NEXT: adr x8, lbsrc
254
- ; CHECK-NEXT: ldrb w8, [x8]
255
- ; CHECK-NEXT: adr x9, lbdst
256
- ; CHECK-NEXT: strb w8, [x9]
257
- ; CHECK-NEXT: ret
258
- ;
259
- ; CHECK-GLOBISEL-LABEL: baz1:
260
- ; CHECK-GLOBISEL: // %bb.0: // %entry
261
- ; CHECK-GLOBISEL-NEXT: adr x8, lbsrc
262
- ; CHECK-GLOBISEL-NEXT: ldrb w8, [x8]
263
- ; CHECK-GLOBISEL-NEXT: adr x9, lbdst
264
- ; CHECK-GLOBISEL-NEXT: strb w8, [x9]
265
- ; CHECK-GLOBISEL-NEXT: ret
266
- ;
267
156
; CHECK-PIC-LABEL: baz1:
268
157
; CHECK-PIC: // %bb.0: // %entry
269
158
; CHECK-PIC-NEXT: adr x8, lbsrc
@@ -286,20 +175,6 @@ entry:
286
175
}
287
176
288
177
define dso_preemptable void @baz2 () {
289
- ; CHECK-LABEL: baz2:
290
- ; CHECK: // %bb.0: // %entry
291
- ; CHECK-NEXT: adr x8, lptr
292
- ; CHECK-NEXT: adr x9, lbdst
293
- ; CHECK-NEXT: str x9, [x8]
294
- ; CHECK-NEXT: ret
295
- ;
296
- ; CHECK-GLOBISEL-LABEL: baz2:
297
- ; CHECK-GLOBISEL: // %bb.0: // %entry
298
- ; CHECK-GLOBISEL-NEXT: adr x8, lptr
299
- ; CHECK-GLOBISEL-NEXT: adr x9, lbdst
300
- ; CHECK-GLOBISEL-NEXT: str x9, [x8]
301
- ; CHECK-GLOBISEL-NEXT: ret
302
- ;
303
178
; CHECK-PIC-LABEL: baz2:
304
179
; CHECK-PIC: // %bb.0: // %entry
305
180
; CHECK-PIC-NEXT: adr x8, lptr
@@ -321,23 +196,6 @@ entry:
321
196
define dso_preemptable void @baz3 () {
322
197
; FIXME: Needn't adr lptr
323
198
;
324
- ; CHECK-LABEL: baz3:
325
- ; CHECK: // %bb.0: // %entry
326
- ; CHECK-NEXT: adr x8, lbsrc
327
- ; CHECK-NEXT: ldrb w8, [x8]
328
- ; CHECK-NEXT: ldr x9, lptr
329
- ; CHECK-NEXT: strb w8, [x9]
330
- ; CHECK-NEXT: ret
331
- ;
332
- ; CHECK-GLOBISEL-LABEL: baz3:
333
- ; CHECK-GLOBISEL: // %bb.0: // %entry
334
- ; CHECK-GLOBISEL-NEXT: adr x8, lbsrc
335
- ; CHECK-GLOBISEL-NEXT: adr x9, lptr
336
- ; CHECK-GLOBISEL-NEXT: ldrb w8, [x8]
337
- ; CHECK-GLOBISEL-NEXT: ldr x9, [x9]
338
- ; CHECK-GLOBISEL-NEXT: strb w8, [x9]
339
- ; CHECK-GLOBISEL-NEXT: ret
340
- ;
341
199
; CHECK-PIC-LABEL: baz3:
342
200
; CHECK-PIC: // %bb.0: // %entry
343
201
; CHECK-PIC-NEXT: adr x8, lbsrc
@@ -365,16 +223,6 @@ entry:
365
223
declare void @func (...)
366
224
367
225
define dso_preemptable ptr @externfuncaddr () {
368
- ; CHECK-LABEL: externfuncaddr:
369
- ; CHECK: // %bb.0: // %entry
370
- ; CHECK-NEXT: ldr x0, :got:func
371
- ; CHECK-NEXT: ret
372
- ;
373
- ; CHECK-GLOBISEL-LABEL: externfuncaddr:
374
- ; CHECK-GLOBISEL: // %bb.0: // %entry
375
- ; CHECK-GLOBISEL-NEXT: ldr x0, :got:func
376
- ; CHECK-GLOBISEL-NEXT: ret
377
- ;
378
226
; CHECK-PIC-LABEL: externfuncaddr:
379
227
; CHECK-PIC: // %bb.0: // %entry
380
228
; CHECK-PIC-NEXT: ldr x0, :got:func
@@ -389,16 +237,6 @@ entry:
389
237
}
390
238
391
239
define dso_preemptable ptr @localfuncaddr () {
392
- ; CHECK-LABEL: localfuncaddr:
393
- ; CHECK: // %bb.0: // %entry
394
- ; CHECK-NEXT: adr x0, externfuncaddr
395
- ; CHECK-NEXT: ret
396
- ;
397
- ; CHECK-GLOBISEL-LABEL: localfuncaddr:
398
- ; CHECK-GLOBISEL: // %bb.0: // %entry
399
- ; CHECK-GLOBISEL-NEXT: adr x0, externfuncaddr
400
- ; CHECK-GLOBISEL-NEXT: ret
401
- ;
402
240
; CHECK-PIC-LABEL: localfuncaddr:
403
241
; CHECK-PIC: // %bb.0: // %entry
404
242
; CHECK-PIC-NEXT: ldr x0, :got:externfuncaddr
0 commit comments