Skip to content

Commit 11caef0

Browse files
committed
[AArch64][GlobalISel][NFC] Re-generate a test.
1 parent 76fc871 commit 11caef0

File tree

1 file changed

+80
-79
lines changed

1 file changed

+80
-79
lines changed

llvm/test/CodeGen/AArch64/GlobalISel/fold-global-offsets.mir

Lines changed: 80 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
define void @dont_fold_unsized_type() { ret void }
2222
define void @dont_fold_thread_local() { ret void }
2323
...
24+
# We should fold the offset 1 into the G_GLOBAL_VALUE.
2425
---
2526
name: one_ptr_add
2627
alignment: 4
@@ -30,20 +31,21 @@ body: |
3031
bb.0:
3132
liveins: $x0
3233
33-
; We should fold the offset 1 into the G_GLOBAL_VALUE.
34-
3534
; CHECK-LABEL: name: one_ptr_add
3635
; CHECK: liveins: $x0
37-
; CHECK: [[GV:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @g + 1
38-
; CHECK: $x0 = COPY [[GV]](p0)
39-
; CHECK: RET_ReallyLR implicit $x0
36+
; CHECK-NEXT: {{ $}}
37+
; CHECK-NEXT: [[GV:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @g + 1
38+
; CHECK-NEXT: $x0 = COPY [[GV]](p0)
39+
; CHECK-NEXT: RET_ReallyLR implicit $x0
4040
%global:_(p0) = G_GLOBAL_VALUE @g
4141
%offset:_(s64) = G_CONSTANT i64 1
4242
%ptr_add:_(p0) = G_PTR_ADD %global, %offset(s64)
4343
$x0 = COPY %ptr_add
4444
RET_ReallyLR implicit $x0
4545
4646
...
47+
# We should fold the offset 1 into the G_GLOBAL_VALUE, resulting in a
48+
# final offset of 4.
4749
---
4850
name: add_to_offset
4951
alignment: 4
@@ -53,21 +55,21 @@ body: |
5355
bb.0:
5456
liveins: $x0
5557
56-
; We should fold the offset 1 into the G_GLOBAL_VALUE, resulting in a
57-
; final offset of 4.
58-
5958
; CHECK-LABEL: name: add_to_offset
6059
; CHECK: liveins: $x0
61-
; CHECK: [[GV:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @g + 4
62-
; CHECK: $x0 = COPY [[GV]](p0)
63-
; CHECK: RET_ReallyLR implicit $x0
60+
; CHECK-NEXT: {{ $}}
61+
; CHECK-NEXT: [[GV:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @g + 4
62+
; CHECK-NEXT: $x0 = COPY [[GV]](p0)
63+
; CHECK-NEXT: RET_ReallyLR implicit $x0
6464
%global:_(p0) = G_GLOBAL_VALUE @g + 3
6565
%offset:_(s64) = G_CONSTANT i64 1
6666
%ptr_add:_(p0) = G_PTR_ADD %global, %offset(s64)
6767
$x0 = COPY %ptr_add
6868
RET_ReallyLR implicit $x0
6969
7070
...
71+
# We're allowed to have more than one G_PTR_ADD use. We should fold 1 into
72+
# the G_GLOBAL_VALUE's offset.
7173
---
7274
name: two_ptr_adds_same_offset
7375
alignment: 4
@@ -77,17 +79,15 @@ body: |
7779
bb.0:
7880
liveins: $x0, $x1
7981
80-
; We're allowed to have more than one G_PTR_ADD use. We should fold 1 into
81-
; the G_GLOBAL_VALUE's offset.
82-
8382
; CHECK-LABEL: name: two_ptr_adds_same_offset
8483
; CHECK: liveins: $x0, $x1
85-
; CHECK: %val1:_(s64) = COPY $x0
86-
; CHECK: %val2:_(s64) = COPY $x1
87-
; CHECK: [[GV:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @g + 1
88-
; CHECK: G_STORE %val1(s64), [[GV]](p0) :: (store (s64))
89-
; CHECK: G_STORE %val2(s64), [[GV]](p0) :: (store (s64))
90-
; CHECK: RET_ReallyLR implicit $x0
84+
; CHECK-NEXT: {{ $}}
85+
; CHECK-NEXT: %val1:_(s64) = COPY $x0
86+
; CHECK-NEXT: %val2:_(s64) = COPY $x1
87+
; CHECK-NEXT: [[GV:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @g + 1
88+
; CHECK-NEXT: G_STORE %val1(s64), [[GV]](p0) :: (store (s64))
89+
; CHECK-NEXT: G_STORE %val2(s64), [[GV]](p0) :: (store (s64))
90+
; CHECK-NEXT: RET_ReallyLR implicit $x0
9191
%val1:_(s64) = COPY $x0
9292
%val2:_(s64) = COPY $x1
9393
%global:_(p0) = G_GLOBAL_VALUE @g
@@ -99,6 +99,9 @@ body: |
9999
RET_ReallyLR implicit $x0
100100
101101
...
102+
# The lowest offset G_PTR_ADD (2) should be folded into the G_GLOBAL_VALUE.
103+
#
104+
# The other G_PTR_ADD should have its offset decremented by 2.
102105
---
103106
name: two_ptr_adds_different_offset
104107
alignment: 4
@@ -107,20 +110,18 @@ machineFunctionInfo: {}
107110
body: |
108111
bb.0:
109112
liveins: $x0, $x1
110-
; The lowest offset G_PTR_ADD (2) should be folded into the G_GLOBAL_VALUE.
111-
;
112-
; The other G_PTR_ADD should have its offset decremented by 2.
113113
114114
; CHECK-LABEL: name: two_ptr_adds_different_offset
115115
; CHECK: liveins: $x0, $x1
116-
; CHECK: %val1:_(s64) = COPY $x0
117-
; CHECK: %val2:_(s64) = COPY $x1
118-
; CHECK: [[GV:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @g + 2
119-
; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 8
120-
; CHECK: %ptr_add2:_(p0) = G_PTR_ADD [[GV]], [[C]](s64)
121-
; CHECK: G_STORE %val1(s64), [[GV]](p0) :: (store (s64))
122-
; CHECK: G_STORE %val2(s64), %ptr_add2(p0) :: (store (s64))
123-
; CHECK: RET_ReallyLR implicit $x0
116+
; CHECK-NEXT: {{ $}}
117+
; CHECK-NEXT: %val1:_(s64) = COPY $x0
118+
; CHECK-NEXT: %val2:_(s64) = COPY $x1
119+
; CHECK-NEXT: [[GV:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @g + 2
120+
; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 8
121+
; CHECK-NEXT: %ptr_add2:_(p0) = G_PTR_ADD [[GV]], [[C]](s64)
122+
; CHECK-NEXT: G_STORE %val1(s64), [[GV]](p0) :: (store (s64))
123+
; CHECK-NEXT: G_STORE %val2(s64), %ptr_add2(p0) :: (store (s64))
124+
; CHECK-NEXT: RET_ReallyLR implicit $x0
124125
%val1:_(s64) = COPY $x0
125126
%val2:_(s64) = COPY $x1
126127
%global:_(p0) = G_GLOBAL_VALUE @g
@@ -133,6 +134,11 @@ body: |
133134
RET_ReallyLR implicit $x0
134135
135136
...
137+
# We should be able to fold all of the G_PTR_ADDs, except for the last one
138+
# into the G_GLOBAL_VALUE.
139+
#
140+
# (TypeAllocSize = 4, so the offset on the G_GLOBAL_VALUE can't go above
141+
# that.)
136142
---
137143
name: ptr_add_chain
138144
alignment: 4
@@ -141,19 +147,15 @@ machineFunctionInfo: {}
141147
body: |
142148
bb.0:
143149
liveins: $x0
144-
; We should be able to fold all of the G_PTR_ADDs, except for the last one
145-
; into the G_GLOBAL_VALUE.
146-
;
147-
; (TypeAllocSize = 4, so the offset on the G_GLOBAL_VALUE can't go above
148-
; that.)
149150
150151
; CHECK-LABEL: name: ptr_add_chain
151152
; CHECK: liveins: $x0
152-
; CHECK: [[GV:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @g + 1
153-
; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 4
154-
; CHECK: %dont_fold_me:_(p0) = G_PTR_ADD [[GV]], [[C]](s64)
155-
; CHECK: $x0 = COPY %dont_fold_me(p0)
156-
; CHECK: RET_ReallyLR implicit $x0
153+
; CHECK-NEXT: {{ $}}
154+
; CHECK-NEXT: [[GV:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @g + 1
155+
; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 4
156+
; CHECK-NEXT: %dont_fold_me:_(p0) = G_PTR_ADD [[GV]], [[C]](s64)
157+
; CHECK-NEXT: $x0 = COPY %dont_fold_me(p0)
158+
; CHECK-NEXT: RET_ReallyLR implicit $x0
157159
%global:_(p0) = G_GLOBAL_VALUE @g
158160
%offset:_(s64) = G_CONSTANT i64 1
159161
%ptr_add1:_(p0) = G_PTR_ADD %global, %offset(s64)
@@ -165,6 +167,7 @@ body: |
165167
RET_ReallyLR implicit $x0
166168
167169
...
170+
# Do not add negative offsets to G_GLOBAL_VALUE.
168171
---
169172
name: dont_fold_negative_offset
170173
alignment: 4
@@ -174,22 +177,22 @@ body: |
174177
bb.0:
175178
liveins: $x0
176179
177-
; Do not add negative offsets to G_GLOBAL_VALUE.
178-
179180
; CHECK-LABEL: name: dont_fold_negative_offset
180181
; CHECK: liveins: $x0
181-
; CHECK: %global:_(p0) = G_GLOBAL_VALUE @g
182-
; CHECK: %offset:_(s64) = G_CONSTANT i64 -1
183-
; CHECK: %ptr_add:_(p0) = G_PTR_ADD %global, %offset(s64)
184-
; CHECK: $x0 = COPY %ptr_add(p0)
185-
; CHECK: RET_ReallyLR implicit $x0
182+
; CHECK-NEXT: {{ $}}
183+
; CHECK-NEXT: %global:_(p0) = G_GLOBAL_VALUE @g
184+
; CHECK-NEXT: %offset:_(s64) = G_CONSTANT i64 -1
185+
; CHECK-NEXT: %ptr_add:_(p0) = G_PTR_ADD %global, %offset(s64)
186+
; CHECK-NEXT: $x0 = COPY %ptr_add(p0)
187+
; CHECK-NEXT: RET_ReallyLR implicit $x0
186188
%global:_(p0) = G_GLOBAL_VALUE @g
187189
%offset:_(s64) = G_CONSTANT i64 -1
188190
%ptr_add:_(p0) = G_PTR_ADD %global, %offset(s64)
189191
$x0 = COPY %ptr_add
190192
RET_ReallyLR implicit $x0
191193
192194
...
195+
# Do not create smaller offsets. Ensures combine termination.
193196
---
194197
name: dont_min_offset_less_than_curr_offset
195198
alignment: 4
@@ -199,22 +202,23 @@ body: |
199202
bb.0:
200203
liveins: $x0
201204
202-
; Do not create smaller offsets. Ensures combine termination.
203-
204205
; CHECK-LABEL: name: dont_min_offset_less_than_curr_offset
205206
; CHECK: liveins: $x0
206-
; CHECK: %global:_(p0) = G_GLOBAL_VALUE @g + 3
207-
; CHECK: %offset:_(s64) = G_CONSTANT i64 -1
208-
; CHECK: %ptr_add:_(p0) = G_PTR_ADD %global, %offset(s64)
209-
; CHECK: $x0 = COPY %ptr_add(p0)
210-
; CHECK: RET_ReallyLR implicit $x0
207+
; CHECK-NEXT: {{ $}}
208+
; CHECK-NEXT: %global:_(p0) = G_GLOBAL_VALUE @g + 3
209+
; CHECK-NEXT: %offset:_(s64) = G_CONSTANT i64 -1
210+
; CHECK-NEXT: %ptr_add:_(p0) = G_PTR_ADD %global, %offset(s64)
211+
; CHECK-NEXT: $x0 = COPY %ptr_add(p0)
212+
; CHECK-NEXT: RET_ReallyLR implicit $x0
211213
%global:_(p0) = G_GLOBAL_VALUE @g + 3
212214
%offset:_(s64) = G_CONSTANT i64 -1
213215
%ptr_add:_(p0) = G_PTR_ADD %global, %offset(s64)
214216
$x0 = COPY %ptr_add
215217
RET_ReallyLR implicit $x0
216218
217219
...
220+
# 1 << 21 is the largest offset expressible in all object formats.
221+
# Don't fold it.
218222
---
219223
name: dont_fold_max_offset
220224
alignment: 4
@@ -224,23 +228,22 @@ body: |
224228
bb.0:
225229
liveins: $x0
226230
227-
; 1 << 21 is the largest offset expressible in all object formats.
228-
; Don't fold it.
229-
230231
; CHECK-LABEL: name: dont_fold_max_offset
231232
; CHECK: liveins: $x0
232-
; CHECK: %global:_(p0) = G_GLOBAL_VALUE @g
233-
; CHECK: %offset:_(s64) = G_CONSTANT i64 4292870144
234-
; CHECK: %ptr_add:_(p0) = G_PTR_ADD %global, %offset(s64)
235-
; CHECK: $x0 = COPY %ptr_add(p0)
236-
; CHECK: RET_ReallyLR implicit $x0
233+
; CHECK-NEXT: {{ $}}
234+
; CHECK-NEXT: %global:_(p0) = G_GLOBAL_VALUE @g
235+
; CHECK-NEXT: %offset:_(s64) = G_CONSTANT i64 4292870144
236+
; CHECK-NEXT: %ptr_add:_(p0) = G_PTR_ADD %global, %offset(s64)
237+
; CHECK-NEXT: $x0 = COPY %ptr_add(p0)
238+
; CHECK-NEXT: RET_ReallyLR implicit $x0
237239
%global:_(p0) = G_GLOBAL_VALUE @g
238240
%offset:_(s64) = G_CONSTANT i64 4292870144 ; 1 << 21
239241
%ptr_add:_(p0) = G_PTR_ADD %global, %offset(s64)
240242
$x0 = COPY %ptr_add
241243
RET_ReallyLR implicit $x0
242244
243245
...
246+
# Type alloc size = 4, offset = 16. Don't fold.
244247
---
245248
name: dont_fold_offset_larger_than_type_alloc
246249
alignment: 4
@@ -249,58 +252,56 @@ machineFunctionInfo: {}
249252
body: |
250253
bb.0:
251254
252-
; Type alloc size = 4, offset = 16. Don't fold.
253-
254255
; CHECK-LABEL: name: dont_fold_offset_larger_than_type_alloc
255256
; CHECK: %global:_(p0) = G_GLOBAL_VALUE @g
256-
; CHECK: %offset:_(s64) = G_CONSTANT i64 16
257-
; CHECK: %ptr_add:_(p0) = G_PTR_ADD %global, %offset(s64)
258-
; CHECK: $x0 = COPY %ptr_add(p0)
259-
; CHECK: RET_ReallyLR implicit $x0
257+
; CHECK-NEXT: %offset:_(s64) = G_CONSTANT i64 16
258+
; CHECK-NEXT: %ptr_add:_(p0) = G_PTR_ADD %global, %offset(s64)
259+
; CHECK-NEXT: $x0 = COPY %ptr_add(p0)
260+
; CHECK-NEXT: RET_ReallyLR implicit $x0
260261
%global:_(p0) = G_GLOBAL_VALUE @g
261262
%offset:_(s64) = G_CONSTANT i64 16
262263
%ptr_add:_(p0) = G_PTR_ADD %global, %offset(s64)
263264
$x0 = COPY %ptr_add(p0)
264265
RET_ReallyLR implicit $x0
265266
266267
...
268+
# Check that we don't touch unsized globals.
267269
---
268270
name: dont_fold_unsized_type
269271
alignment: 4
270272
tracksRegLiveness: true
271273
machineFunctionInfo: {}
272274
body: |
273275
bb.0:
274-
; Check that we don't touch unsized globals.
275276
276277
; CHECK-LABEL: name: dont_fold_unsized_type
277278
; CHECK: %global:_(p0) = G_GLOBAL_VALUE @unsized
278-
; CHECK: %offset:_(s64) = G_CONSTANT i64 16
279-
; CHECK: %ptr_add:_(p0) = G_PTR_ADD %global, %offset(s64)
280-
; CHECK: $x0 = COPY %ptr_add(p0)
281-
; CHECK: RET_ReallyLR implicit $x0
279+
; CHECK-NEXT: %offset:_(s64) = G_CONSTANT i64 16
280+
; CHECK-NEXT: %ptr_add:_(p0) = G_PTR_ADD %global, %offset(s64)
281+
; CHECK-NEXT: $x0 = COPY %ptr_add(p0)
282+
; CHECK-NEXT: RET_ReallyLR implicit $x0
282283
%global:_(p0) = G_GLOBAL_VALUE @unsized
283284
%offset:_(s64) = G_CONSTANT i64 16
284285
%ptr_add:_(p0) = G_PTR_ADD %global, %offset(s64)
285286
$x0 = COPY %ptr_add(p0)
286287
RET_ReallyLR implicit $x0
287288
288289
...
290+
# Check that we don't touch thread-local globals.
289291
---
290292
name: dont_fold_thread_local
291293
alignment: 4
292294
tracksRegLiveness: true
293295
machineFunctionInfo: {}
294296
body: |
295297
bb.0:
296-
; Check that we don't touch thread-local globals.
297298
298299
; CHECK-LABEL: name: dont_fold_thread_local
299300
; CHECK: %global:_(p0) = G_GLOBAL_VALUE @thread_local
300-
; CHECK: %offset:_(s64) = G_CONSTANT i64 16
301-
; CHECK: %ptr_add:_(p0) = G_PTR_ADD %global, %offset(s64)
302-
; CHECK: $x0 = COPY %ptr_add(p0)
303-
; CHECK: RET_ReallyLR implicit $x0
301+
; CHECK-NEXT: %offset:_(s64) = G_CONSTANT i64 16
302+
; CHECK-NEXT: %ptr_add:_(p0) = G_PTR_ADD %global, %offset(s64)
303+
; CHECK-NEXT: $x0 = COPY %ptr_add(p0)
304+
; CHECK-NEXT: RET_ReallyLR implicit $x0
304305
%global:_(p0) = G_GLOBAL_VALUE @thread_local
305306
%offset:_(s64) = G_CONSTANT i64 16
306307
%ptr_add:_(p0) = G_PTR_ADD %global, %offset(s64)

0 commit comments

Comments
 (0)